Difference between revisions of "Projects:ARRA:SlicerEM:Developer:WorkflowManager"

From NAMIC Wiki
Jump to: navigation, search
(Created page with '== Summary == * EMSegmenter has a fairly complicated workflow * Need a mechanism to validate user input and transition appropriately between steps of the workflow * Current plan…')
 
Line 3: Line 3:
 
* EMSegmenter has a fairly complicated workflow
 
* EMSegmenter has a fairly complicated workflow
 
* Need a mechanism to validate user input and transition appropriately between steps of the workflow
 
* Need a mechanism to validate user input and transition appropriately between steps of the workflow
 +
* Should be dependent on Qt only (and not VTK)
 
* Current plan (subject to change) = use Qt's state machine implementation, with our own workflow manager on top
 
* Current plan (subject to change) = use Qt's state machine implementation, with our own workflow manager on top
  
Line 24: Line 25:
 
** [http://public.kitware.com/KWWidgets/doc/nightly/html/classvtkKWWizardWidget.htm vtkKWWizardWidget ]: a wizard widget, embedding UI (buttons) and a wizard workflow engine
 
** [http://public.kitware.com/KWWidgets/doc/nightly/html/classvtkKWWizardWidget.htm vtkKWWizardWidget ]: a wizard widget, embedding UI (buttons) and a wizard workflow engine
 
** [http://public.kitware.com/KWWidgets/doc/nightly/html/classvtkKWWizardDialog.htm vtkKWWizardDialog ]: a wizard dialog, embedding a wizard widget in a toplevel/dialog window.
 
** [http://public.kitware.com/KWWidgets/doc/nightly/html/classvtkKWWizardDialog.htm vtkKWWizardDialog ]: a wizard dialog, embedding a wizard widget in a toplevel/dialog window.
 +
 +
== GUI implementation in Qt ==
 +
* [http://doc.trolltech.com/4.6/qstackedwidget.html qStackedWidget] and/or [http://doc.trolltech.com/4.6/qtablewidget.html qTabWidget]
 +
* plus [http://doc.trolltech.com/4.6/qdialog.html qDialog]
 +
 +
== Considerations to keep in mind ==
 +
* Undo / redo and forward/back transitions
 +
* Branching workflows / skipped states
  
 
== Additional ideas and questions ==
 
== Additional ideas and questions ==
  
 
**
 
**

Revision as of 18:21, 14 July 2010

Home < Projects:ARRA:SlicerEM:Developer:WorkflowManager

Summary

  • EMSegmenter has a fairly complicated workflow
  • Need a mechanism to validate user input and transition appropriately between steps of the workflow
  • Should be dependent on Qt only (and not VTK)
  • Current plan (subject to change) = use Qt's state machine implementation, with our own workflow manager on top

Previous workflow manager implementation in KWWidgets

Uses:

  • KWWidgets state machines - incorporates states (ex. user interaction within a workflow step, validation of the user input within a workflow step), transitions (between states), and inputs (pushed onto a queue to trigger transitions)
  • KWWidgets wizard workflow - provides additional functionality to manage workflow using a state machine (ex. bundles pairs of user interaction and validation states into a workflow "step", handles a navigation stack of steps encountered along the way that triggers updates of widgets and/or dialogs)

Transition from KWWidgets state machines to Qt state machines

  • Core functionality in KWWidgets state machines that would be replicated for a "straight-forward" conversion:
    • Representation of

Transition from KWWidgets workflow manager to a workflow manager using Qt's state machines

GUI implementation in Qt

Considerations to keep in mind

  • Undo / redo and forward/back transitions
  • Branching workflows / skipped states

Additional ideas and questions