Skip to main content
Jump to: navigation, search

JWT MultipleViews

Revision as of 09:28, 9 March 2009 by (Talk | contribs) (Known Problems)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

This site gives some information about the current developments in the multiple views branch. Please feel free to try everything out. The current status should still be considered alpha, therefore if something seems to do not quite what you expect it's most probably a bug ;)


What is needed?

  • jwt-we (view_multiple branch)
  • jwt-meta (in meta directory on CVS)
  • Dependency on GEF Zest (for graph layouting)

Support for Multiple View Data


  • Dimension & Location have been replaced by LayoutData
  • One GraphicalElement can have multiple LayoutDatas (one for each view)
  • LayoutData can be imported from another view or created using a layouting algorithm (from GEF Zest project)
  • Configurable behavior (in preferences) if viewdata is missing
  • LayoutData Wizard (button in toolbar next to view dropdown)
  • View data is stored in separate *.workflow_view file


  • Syncronization of LayoutDatas between views (location in one view changes the location in other views)
  • Additional layout algorithms better suited for workflows ([1]), maybe replace Zest to remove dependence

Sourcing out Meta-Model


  • Core Meta Model sourced out in own plugin (jwt-meta)
  • Refactored View elements so that they reference the core elements but not the other way around
  • Adjusted templates/code, regenerated model(s), transferred manually adjusted code into new providers
  • ProviderRegistry allows to inject editor-specific properties (images, visibility, commands, model children) into the model
  • Commands split into core and view commands
  • Garbage collection executed on saving for removing unnecessary view data (References, ReferenceEdges, LayoutData)
  • Included new ATL based converter
  • Both models have been regenerated successfully
  • Removed GEF dependency from jwt-meta (affects CommandStack/Commands)
  • Added NLS messages to genmodel


  • Adjust other Plugins
  • Write transformation for old 0.5.0 files
  • Find nice icon for wizard in toolbar
  • Adjust
  • Import changes from head
  • ViewData Garbage Collection seems a bit too eager sometimes deleting used information
  • external viewdata file should reference original file without path so that files can be moved around


The changes above had some serious impact (much more than I initially expected) on almost every aspect of GEF. Therefore, before integrating the new version into the HEAD, the following functions (the usual suspects when something can go wrong) should be confirmed to work in different circumstances.

Things to test

  • Handling of reference edges (creating, deleting, copying, reconnecting, ...)
  • Copy/Cut/Paste and Undo/Redo in different circumstances
  • Deleting (is everything deleted, do errors occur?)
  • LayoutData Wizard and multiple view data in general
  • Drag'n'Drop (Outline -> Outline, Outline -> Editor)
  • Insert Scope from Outline
  • Template import/export
  • Does everything work with multiple open editors (Singleton issues?)
  • Save viewdata in own file .workflow_view

Known Problems

  • Paste issues (most likely due to layoutdata being in clipboard)
  • Layoutdata isn't deleted with GraphicalElements
  • Save as doesn't work correctly (platform URI in save?, workflow file can be opened from package explorer a second time, sometimes too much elements removed?)

Back to the top