
h2. Breakdown:
Investigate using the old T1 Workflow Diagram (BETA) as a basis to allow support for *some* drag and drop capabilties. If this is not suitable look into other approaches.
The goal here is not to create a perfect Drag and Drop solution, but a partial solution that satisfies the needs of most of our users.
* Refactor old workflow diagram as a UI component in a perspective.
* Update event handling to make the above work correctly (if required).
* Identify easily implementable gaps.
* Implement the above.
h2. Notes:
h3. 06/02/08 (S Owen)
Tested the old WorkflowEditor UIComponent within a perspective. Although far from perfect it is quite usable and supports most of the features we are looking for.
I've done some refactoring and seperated this component, and a corresponding UIComponentFactory in a new module: /scufl/scufl-ui-components/scufl-interactive-diagram.
I've also created a new perspective module: /perspectives/perspective-interactive-design which uses the WorkflowEditor as a named component.
To test this you need to add:
<artifact groupId="uk.org.mygrid.taverna.scufl.scufl-ui-components" artifactId="scufl-interactive-diagram" version="1.7.0.0"/>
and
<artifact groupId="uk.org.mygrid.taverna.perspectives" artifactId="perspective-interactive-design" version="1.7.0.0"/>
to the $TAVERNA_HOME/conf/current-profile.xml
I've added these to the default profile in taverna-bootstrap/resources.
h3. Issues
There is currently an issue when switching perspectives. A call to attachToModel on the UIComponent results in a "listener mismatch" error being reported which stems from setUI(new BasicGraphUI() {... line 318 in WorkflowEditor.java. This only happens when the perspective defines the editor as a named component, so the problem is likely to be caused by re-adding a GraphModelListener where one already exists.
The attachToModel method needs some significant refactoring.
h3. Considerations
Bear in mind that the WorkflowEditor component is also used to display progress for a running workflow.
h3. Testing (Franck)
Overall a good start, I was very happy to play with. Once, you know how things work, it becomes very interesting.
A very details guideline will be very useful before the release.
Couple of issues to highlight:
* when you create more than 1 input or output parameter they all get stacked together making the selection very difficult - *FIXED*
* 'SCUFL INTERNAL SINKPORT' appears when you create more than 1 input or output - *FIXED*
* the color of the input and output box is sometimes very strange(multiple colours) - *FIXED*
* No support for 'complex type services'
* Renaming an input or output is very difficult, new name doesn't appear until you close then re-open the workflow - *FIXED*
* sometimes all the processors+input+output gets stacked together - *FIXED*
.....still testing....
h3. Testing (Stuart)
* Can connect a Processor to itself - causes an error which prevents the diagram displaying correctly there on. *FIXED*
* The accuracy of right clicking on a node is sometimes slightly off.
* Renaming input or output ports does not get reflected in the view. - *FIXED*
* Renaming an input/output port in the view causes a NullPointerException - *FIXED*