Forum OpenACS Q&A: Integrating OpenACS/Project* with GanttProject

Hi,

Project* = "Project Manager" or "Project/Open" ...

A friend of mine has recently used GanntProject for some project management work. Quite impressive. Just a crisp Gantt viewer/editor component with can run on Java Web Start. Just install the Java Stuff at http://java.sun.com/products/javawebstart/download.jsp and click on the "Java Web Start" link on http://ganttproject.sourceforge.net/. There are still some minor bugs in the system, but I'm quite sure that will go away soon.

I've been checking, GanttProject can read and write XML files from and to a Web-DAV server. I've just posted on the GanttProject forum about "scripting" the component to load a specific file as a default. That would be basicly everything what we'd need from their side in order to use GanttProject as a viewer component.

On the OpenACS side we would have to create their style of XML document from information in Project Manager or Project/Open and to read their XML document format to generate the corresponding Project Manager or Project/Open database structures.

But there is an issue: Both PM and P/O differentiate between "Projects" and "Tasks", while GanttProject shows both objects in a similar way. P/O has just recently released an Alpha version of the "Timesheet2" module for general project planning, controlling and billing (http://pcdemo.dnsalias.com/), so we may still be able to modify our structures to be compatible with the GanttProject model. How is the situation with Project Manager?

Does anybody have experience parsing and creating complex XML files apart from the package manager? Any learned lessons?

Bests,
Frank

Collapse
Posted by Carl Robert Blesius on
I have not looked at it, but there is code for XML generation and parsing that gives .LRN IMS enterprise support (think it is in its own package) and there is code that allows questions/tests/etc. to be imported/exported using the XML based QTI standard (which is much more complex).
Collapse
Posted by Andrew Grumet on

The oacs-dav package uses it too, see tDAV-procs.tcl. Main lesson is, tdom is your friend. The tdom docs are here: http://www.tdom.org/doc-index.html

Here are a couple of my most-used tdom utility functions (probably belong in the toolkit somewhere if alternatives aren't readily available):

ad_proc -public ps_simpleTextElement {doc name value} {} {
    set element_node [$doc createElement $name]
    set value_node [$doc createTextNode $value]
    $element_node appendChild $value_node
    return $element_node
}

ad_proc -public ps_rfc822date seconds {} {
    return [ns_fmttime $seconds "%a, %d %b %Y %T %Z"]
}

Collapse
Posted by Frank Bergmann on
Hi,

thanks for the replies. Let's see how it's going to work out.
I've just installed Java SDK 1.4.2_08, Eclipse and got a 1Gig memory extension for my desktop.

Ready to roll....
Frank

Collapse
Posted by Malte Sussdorff on
Frank, take a look at the tsoap package in OpenACS. This is an implementation of SOAP running on top of TDOM, so you should have ample of code to dig around. Furthermore, don't hesitate to contact Timo who wrote the code.