Diese Präsentation wurde erfolgreich gemeldet.
Wir verwenden Ihre LinkedIn Profilangaben und Informationen zu Ihren Aktivitäten, um Anzeigen zu personalisieren und Ihnen relevantere Inhalte anzuzeigen. Sie können Ihre Anzeigeneinstellungen jederzeit ändern.
Alexander Nyßen
itemis AG
Graphical Editing Framework Project Lead
Image courtesy of NASA
4
Our mission to Mars
GEF4
• Our approach to develop the next generation API
• Clear distinction between GEF proper as the production
and GEF4 a...
Concrete Goals for GEF4
• A technically (and not historically) justified modularity
• Use of modern rendering technology (J...
GEF4 - Components
Image courtesy of Craighton Miller
UI ≃ Eclipse UI
FX ≃ JavaFX
GEF4 Geometry
GEF4 Layout
GEF4
FX.UI
GEF4...
Our mission to Mars
• Goal: Join Mars with a first initial release of all GEF4
components, based on yet provisional API.
• ...
GEF4 - Components
Image courtesy of Craighton Miller
UI ≃ Eclipse UI
FX ≃ JavaFX
GEF4 Geometry
GEF4 Layout
GEF4
FX.UI
GEF4...
GEF4 MVC
• Intended replacement for GEF (MVC) 3.x
• Dedicated to graphical editors and views (no tree editors)
• Based on ...
GEF4 MVC - Overview
• Modern look & feel using JavaFX and GEF4 FX
• Live interaction-feedback (by directly manipulating th...
DEMO - GEF4 MVC.FX.UI Example
GEF4 MVC Distilled - Controller Hierarchy
• Controller hierarchy with explicit parts for content,
feedback, and handles (a...
• Implications:
• No dedicated connection layer but dedicated layers for
contents, feedback, and handles
• No dedicated co...
GEF4 MVC Distilled - Aspect-Bound Interfaces
• Modularized interaction behavior by providing generic tools
and dedicated p...
• Example: Relocate On Drag
GEF4 MVC Distilled - Aspect-Bound Interfaces
hit testing
• Example: Resize On (Handle) Drag
GEF4 MVC Distilled - Aspect-Bound Interfaces
hit testing
• Accessible interaction state via dedicated interaction
models (SelectionModel, ContentModel, ZoomModel, …)
• Behaviors (...
1. Update selection model on click
GEF4 MVC Distilled - Interaction Models/Behaviors
2. Create feedback & handles, reacting to selection change
GEF4 MVC Distilled - Interaction Models/Behaviors
GEF4 MVC - Status Quo / Outlook
• Provides all basic concepts needed to build up graphical
viewers and editors (✓)
• Most ...
GEF4 Zest
• Intended replacement for Zest 1.x (and Zest2)
• Provides graph based visualization with auto-layout
support
• ...
DEMO - GEF4 Zest.FX.UI Example
GEF4 Zest - Details
• Extends GEF4 MVC, using GEF4 Graph as model:
• Provides specific visual parts and visualizations, inc...
GEF4 Zest - Status Quo / Outlook
• Zest(2).Core
• Initiated GEF4 Zest FX and Zest FX.UI, still missing some of
the origina...
Mars (3.10.0) Release Plans
• Provide minor release for Draw2d/GEF (MVC) 3.x and
Zest 1.x (3.10.0 / 1.6.0)
• Provide first ...
ThankYou! Questions?
http://wiki.eclipse.org/GEF/GEF4
Image courtesy of Stuart Rankin / flickr
Nächste SlideShare
Wird geladen in …5
×

GEF4 - Our Mission to Mars

1.492 Aufrufe

Veröffentlicht am

Talk at EclipseCon Europe 2014, Ludwigsburg, Germany

Veröffentlicht in: Software
  • Als Erste(r) kommentieren

  • Gehören Sie zu den Ersten, denen das gefällt!

GEF4 - Our Mission to Mars

  1. 1. Alexander Nyßen itemis AG Graphical Editing Framework Project Lead Image courtesy of NASA 4 Our mission to Mars
  2. 2. GEF4 • Our approach to develop the next generation API • Clear distinction between GEF proper as the production and GEF4 as the provisional component • Development takes place in parallel to maintenance of GEF proper (Draw2D/GEF 3.x / Zest 1.x), API is yet provisional Image courtesy of edtechie99 / flickr
  3. 3. Concrete Goals for GEF4 • A technically (and not historically) justified modularity • Use of modern rendering technology (JavaFX) • Avoiding unnecessary Eclipse-UI dependencies • Integration of automatic layouts also within editors • Support of touch-gestures • Support for „classical“ and „handheld-like“ look & feel Image courtesy of Stefan Bucher (So gesehen) / flickr
  4. 4. GEF4 - Components Image courtesy of Craighton Miller UI ≃ Eclipse UI FX ≃ JavaFX GEF4 Geometry GEF4 Layout GEF4 FX.UI GEF4 FXGEF4 MVC GEF4 MVC.FX GEF4 MVC.FX.UI GEF4 MVC.UI GEF4 Graph GEF4 Zest.FX GEF4 Zest.FX.UI GEF4 DOT.UI GEF4 DOT GEF4 Common GEF4 Cloudio
  5. 5. Our mission to Mars • Goal: Join Mars with a first initial release of all GEF4 components, based on yet provisional API. • Enhance GEF4 FX (✓) and GEF4 MVC (✓) to provide a functionality comparable to Draw2d / GEF (MVC) 3.x. • Rewrite GEF4 Zest (✓) to ensure GEF4 is fully self- contained (Zest2 depended on Draw2d). Image courtesy of NASA
  6. 6. GEF4 - Components Image courtesy of Craighton Miller UI ≃ Eclipse UI FX ≃ JavaFX GEF4 Geometry GEF4 Layout GEF4 FX.UI GEF4 FXGEF4 MVC GEF4 MVC.FX GEF4 MVC.FX.UI GEF4 MVC.UI GEF4 Graph GEF4 Zest.FX GEF4 Zest.FX.UI GEF4 DOT.UI GEF4 DOT GEF4 Common GEF4 Cloudio
  7. 7. GEF4 MVC • Intended replacement for GEF (MVC) 3.x • Dedicated to graphical editors and views (no tree editors) • Based on JavaFX and GEF4 FX for visualization, no requirements/dependencies on a specific model technology • Intentionally light-weight: • Split into UI-toolkit independent abstractions (MVC), JavaFX-based specializations (MVC.FX), and Eclipse UI- integration (MVC.UI/MVC.FX.UI) • Transfers (but revises) approved concepts of GEF (MVC) 3.x
  8. 8. GEF4 MVC - Overview • Modern look & feel using JavaFX and GEF4 FX • Live interaction-feedback (by directly manipulating the visuals rather than performing changes through model) • Enhanced interaction capabilities through gesture-support, continuous zoom, (potentially) rotation support • Enhanced configurability (extended adaptable pattern, dependency injection) • Eclipse UI independence within core (MVC, MVC.FX), • Eclipse UI integration as addition (MVC.UI, MVC.FX.UI)
  9. 9. DEMO - GEF4 MVC.FX.UI Example
  10. 10. GEF4 MVC Distilled - Controller Hierarchy • Controller hierarchy with explicit parts for content, feedback, and handles (and two kinds of relationships):
  11. 11. • Implications: • No dedicated connection layer but dedicated layers for contents, feedback, and handles • No dedicated connection parts, but parent⬌child and/ or anchorage⬌anchored relationships • Content can be anchored at arbitrary 
 other content • Feedback and handles are anchored at 
 underlying content GEF4 MVC Distilled - Controller Hierarchy
  12. 12. GEF4 MVC Distilled - Aspect-Bound Interfaces • Modularized interaction behavior by providing generic tools and dedicated policies (strategies adapted to visual parts): • Tools interface to abstract (interaction) policies • FXClickDragTool, …,AbstractFXDragPolicy, … • Concrete (interaction) policies delegate to specific (transaction) policies • FXRelocateOnDragPolicy, FXZoomOnPinchSpreadPolicy, … • Specific (transaction) policies realize semantic operation • FXResizeRelocatePolicy, FXRelocateConnectionPolicy, …
  13. 13. • Example: Relocate On Drag GEF4 MVC Distilled - Aspect-Bound Interfaces hit testing
  14. 14. • Example: Resize On (Handle) Drag GEF4 MVC Distilled - Aspect-Bound Interfaces hit testing
  15. 15. • Accessible interaction state via dedicated interaction models (SelectionModel, ContentModel, ZoomModel, …) • Behaviors (adapted to visual pars) that listen to changes of interaction state and show feedback / create handles • Example: Select on Click GEF4 MVC Distilled - Interaction Models/Behaviors
  16. 16. 1. Update selection model on click GEF4 MVC Distilled - Interaction Models/Behaviors
  17. 17. 2. Create feedback & handles, reacting to selection change GEF4 MVC Distilled - Interaction Models/Behaviors
  18. 18. GEF4 MVC - Status Quo / Outlook • Provides all basic concepts needed to build up graphical viewers and editors (✓) • Most interaction features already supported (✓): • Hover, Click (Select/Marquee-Select), Drag, (Relocate/Resize incl. Re-Connect and Snap-To-Grid), Pinch/Spread (Zoom), Key-Type (Delete) • Some interaction features still missing (✓): • Creation (Palette), Direct-Editing,Transformations (Rotate, Flip), Context-Menu Image courtesy of pareeerica / flickr
  19. 19. GEF4 Zest • Intended replacement for Zest 1.x (and Zest2) • Provides graph based visualization with auto-layout support • Based on JavaFX and GEF4 FX for visualization, and GEF4 MVC as underlying model-view-controller framework • Rewritten from scratch, replacing the former Zest2 code base, which was initially transferred to GEF4
  20. 20. DEMO - GEF4 Zest.FX.UI Example
  21. 21. GEF4 Zest - Details • Extends GEF4 MVC, using GEF4 Graph as model: • Provides specific visual parts and visualizations, including support for style-sheet-based rendering • Provides additional interaction models (LayoutModel, SubgraphModel) • Integrates layout algorithms provided by GEF4 Layout. • Planned integration with KIELER framework via GEF4 Graph (aligned with KGraph)
  22. 22. GEF4 Zest - Status Quo / Outlook • Zest(2).Core • Initiated GEF4 Zest FX and Zest FX.UI, still missing some of the original visualization features* (✓) • Zest(2).UI • Transferred DOT GraphViewer to GEF4 DOT (✓) • Zest(2).JFace • No replacement API defined yet (✗) 
 
 *) nested graph rendering, animated transitions, curved connections, rotation-support Image courtesy of pareeerica / flickr
  23. 23. Mars (3.10.0) Release Plans • Provide minor release for Draw2d/GEF (MVC) 3.x and Zest 1.x (3.10.0 / 1.6.0) • Provide first release (0.1.0) of GEF4 components: • Extend functionality of FX and MVC components to close the remaining gap to Draw2d/GEF (MVC) 3.x. • Finalize replacement of former Zest2 bundles (depending on SWT/Draw2d) with Zest.FX and Zest.FX.UI. • Investigate integration with KIELER layout algorithms Image courtesy of Stuart Rankin / flickr
  24. 24. ThankYou! Questions? http://wiki.eclipse.org/GEF/GEF4 Image courtesy of Stuart Rankin / flickr

×