SlideShare ist ein Scribd-Unternehmen logo
1 von 24
Downloaden Sie, um offline zu lesen
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 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
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
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
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
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
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
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)
DEMO - GEF4 MVC.FX.UI Example
GEF4 MVC Distilled - Controller Hierarchy
• Controller hierarchy with explicit parts for content,
feedback, and handles (and two kinds of relationships):
• 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
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, …
• 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 (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
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 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
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
DEMO - GEF4 Zest.FX.UI Example
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)
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
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
ThankYou! Questions?
http://wiki.eclipse.org/GEF/GEF4
Image courtesy of Stuart Rankin / flickr

Weitere ähnliche Inhalte

Ähnlich wie Modern Java-based Graphical Editing Framework GEF4 aims to replace GEF 3.x

GEF Past, present, future
GEF Past, present, futureGEF Past, present, future
GEF Past, present, futureitemis AG
 
Siebel Open UI Presentation
Siebel Open UI PresentationSiebel Open UI Presentation
Siebel Open UI PresentationAjeeth Pingle
 
Introduction to j2 ee frameworks
Introduction to j2 ee frameworksIntroduction to j2 ee frameworks
Introduction to j2 ee frameworksMukesh Kumar
 
Learn about Eclipse e4 from Lars Vogel at SF-JUG
Learn about Eclipse e4 from Lars Vogel at SF-JUGLearn about Eclipse e4 from Lars Vogel at SF-JUG
Learn about Eclipse e4 from Lars Vogel at SF-JUGMarakana Inc.
 
dojox.gfx : the foundation for your crossbrowser advanced visualization.
dojox.gfx : the foundation for your crossbrowser advanced visualization.dojox.gfx : the foundation for your crossbrowser advanced visualization.
dojox.gfx : the foundation for your crossbrowser advanced visualization.pruzand
 
Mike Taulty DevDays 2010 Silverlight MEF
Mike Taulty DevDays 2010 Silverlight MEFMike Taulty DevDays 2010 Silverlight MEF
Mike Taulty DevDays 2010 Silverlight MEFukdpe
 
MVC 6 - the new unified Web programming model
MVC 6 - the new unified Web programming modelMVC 6 - the new unified Web programming model
MVC 6 - the new unified Web programming modelAlex Thissen
 
SoCal Code Camp 2011 - ASP.NET MVC 4
SoCal Code Camp 2011 - ASP.NET MVC 4SoCal Code Camp 2011 - ASP.NET MVC 4
SoCal Code Camp 2011 - ASP.NET MVC 4Jon Galloway
 
Ajax Applications with JSF 2 and New RichFaces 4 - JAX/JSF Summit
Ajax Applications with JSF 2 and New RichFaces 4 - JAX/JSF SummitAjax Applications with JSF 2 and New RichFaces 4 - JAX/JSF Summit
Ajax Applications with JSF 2 and New RichFaces 4 - JAX/JSF SummitMax Katz
 
Building extensible application using MEF
Building extensible application using MEFBuilding extensible application using MEF
Building extensible application using MEFRonak Thakkar
 
Angular 2 with typescript
Angular 2 with typescriptAngular 2 with typescript
Angular 2 with typescriptTayseer_Emam
 
Zend_Layout & Zend_View Enhancements
Zend_Layout & Zend_View EnhancementsZend_Layout & Zend_View Enhancements
Zend_Layout & Zend_View EnhancementsRalph Schindler
 
Ajax Applications with JSF2 and New RichFaces 4 at JAX 2011
Ajax Applications with JSF2 and New RichFaces 4 at JAX 2011Ajax Applications with JSF2 and New RichFaces 4 at JAX 2011
Ajax Applications with JSF2 and New RichFaces 4 at JAX 2011Max Katz
 
JSF 2: Myth of panacea? Magic world of user interfaces
JSF 2: Myth of panacea? Magic world of user interfacesJSF 2: Myth of panacea? Magic world of user interfaces
JSF 2: Myth of panacea? Magic world of user interfacesStrannik_2013
 
Jw13 developer-jive talks-presentation
Jw13 developer-jive talks-presentationJw13 developer-jive talks-presentation
Jw13 developer-jive talks-presentationPatrick Li
 
Building Windows Presentation Foundation (WPF) Application
Building Windows Presentation Foundation (WPF) ApplicationBuilding Windows Presentation Foundation (WPF) Application
Building Windows Presentation Foundation (WPF) Applicationssusere19c741
 
Building Windows Presentation Foundation (WPF) Application
Building Windows Presentation Foundation (WPF) ApplicationBuilding Windows Presentation Foundation (WPF) Application
Building Windows Presentation Foundation (WPF) Applicationssusere19c741
 

Ähnlich wie Modern Java-based Graphical Editing Framework GEF4 aims to replace GEF 3.x (20)

GEF Past, present, future
GEF Past, present, futureGEF Past, present, future
GEF Past, present, future
 
Siebel Open UI Presentation
Siebel Open UI PresentationSiebel Open UI Presentation
Siebel Open UI Presentation
 
Introduction to j2 ee frameworks
Introduction to j2 ee frameworksIntroduction to j2 ee frameworks
Introduction to j2 ee frameworks
 
Learn about Eclipse e4 from Lars Vogel at SF-JUG
Learn about Eclipse e4 from Lars Vogel at SF-JUGLearn about Eclipse e4 from Lars Vogel at SF-JUG
Learn about Eclipse e4 from Lars Vogel at SF-JUG
 
dojox.gfx : the foundation for your crossbrowser advanced visualization.
dojox.gfx : the foundation for your crossbrowser advanced visualization.dojox.gfx : the foundation for your crossbrowser advanced visualization.
dojox.gfx : the foundation for your crossbrowser advanced visualization.
 
Jsf
JsfJsf
Jsf
 
Mike Taulty DevDays 2010 Silverlight MEF
Mike Taulty DevDays 2010 Silverlight MEFMike Taulty DevDays 2010 Silverlight MEF
Mike Taulty DevDays 2010 Silverlight MEF
 
MVC 6 - the new unified Web programming model
MVC 6 - the new unified Web programming modelMVC 6 - the new unified Web programming model
MVC 6 - the new unified Web programming model
 
SoCal Code Camp 2011 - ASP.NET MVC 4
SoCal Code Camp 2011 - ASP.NET MVC 4SoCal Code Camp 2011 - ASP.NET MVC 4
SoCal Code Camp 2011 - ASP.NET MVC 4
 
Ajax Applications with JSF 2 and New RichFaces 4 - JAX/JSF Summit
Ajax Applications with JSF 2 and New RichFaces 4 - JAX/JSF SummitAjax Applications with JSF 2 and New RichFaces 4 - JAX/JSF Summit
Ajax Applications with JSF 2 and New RichFaces 4 - JAX/JSF Summit
 
Building extensible application using MEF
Building extensible application using MEFBuilding extensible application using MEF
Building extensible application using MEF
 
Angular 2 with typescript
Angular 2 with typescriptAngular 2 with typescript
Angular 2 with typescript
 
Zend_Layout & Zend_View Enhancements
Zend_Layout & Zend_View EnhancementsZend_Layout & Zend_View Enhancements
Zend_Layout & Zend_View Enhancements
 
Lezione 03 Introduzione a react
Lezione 03   Introduzione a reactLezione 03   Introduzione a react
Lezione 03 Introduzione a react
 
Ajax Applications with JSF2 and New RichFaces 4 at JAX 2011
Ajax Applications with JSF2 and New RichFaces 4 at JAX 2011Ajax Applications with JSF2 and New RichFaces 4 at JAX 2011
Ajax Applications with JSF2 and New RichFaces 4 at JAX 2011
 
JSF 2: Myth of panacea? Magic world of user interfaces
JSF 2: Myth of panacea? Magic world of user interfacesJSF 2: Myth of panacea? Magic world of user interfaces
JSF 2: Myth of panacea? Magic world of user interfaces
 
Jw13 developer-jive talks-presentation
Jw13 developer-jive talks-presentationJw13 developer-jive talks-presentation
Jw13 developer-jive talks-presentation
 
Building Windows Presentation Foundation (WPF) Application
Building Windows Presentation Foundation (WPF) ApplicationBuilding Windows Presentation Foundation (WPF) Application
Building Windows Presentation Foundation (WPF) Application
 
Building Windows Presentation Foundation (WPF) Application
Building Windows Presentation Foundation (WPF) ApplicationBuilding Windows Presentation Foundation (WPF) Application
Building Windows Presentation Foundation (WPF) Application
 
Fluttering
FlutteringFluttering
Fluttering
 

Kürzlich hochgeladen

5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdfWave PLM
 
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...Christina Lin
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataBradBedford3
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptkotipi9215
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio, Inc.
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providermohitmore19
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...soniya singh
 
Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...aditisharan08
 
Introduction to Decentralized Applications (dApps)
Introduction to Decentralized Applications (dApps)Introduction to Decentralized Applications (dApps)
Introduction to Decentralized Applications (dApps)Intelisync
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEOrtus Solutions, Corp
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideChristina Lin
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...kellynguyen01
 
DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about usDynamic Netsoft
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfkalichargn70th171
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityNeo4j
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Modelsaagamshah0812
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comFatema Valibhai
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantAxelRicardoTrocheRiq
 

Kürzlich hochgeladen (20)

5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf
 
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.ppt
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
 
Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...
 
Introduction to Decentralized Applications (dApps)
Introduction to Decentralized Applications (dApps)Introduction to Decentralized Applications (dApps)
Introduction to Decentralized Applications (dApps)
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
 
DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about us
 
Exploring iOS App Development: Simplifying the Process
Exploring iOS App Development: Simplifying the ProcessExploring iOS App Development: Simplifying the Process
Exploring iOS App Development: Simplifying the Process
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered Sustainability
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service Consultant
 

Modern Java-based Graphical Editing Framework GEF4 aims to replace GEF 3.x

  • 1. Alexander Nyßen itemis AG Graphical Editing Framework Project Lead Image courtesy of NASA 4 Our mission to Mars
  • 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. 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. 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. 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. 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. 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. 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. DEMO - GEF4 MVC.FX.UI Example
  • 10. GEF4 MVC Distilled - Controller Hierarchy • Controller hierarchy with explicit parts for content, feedback, and handles (and two kinds of relationships):
  • 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. 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. • Example: Relocate On Drag GEF4 MVC Distilled - Aspect-Bound Interfaces hit testing
  • 14. • Example: Resize On (Handle) Drag GEF4 MVC Distilled - Aspect-Bound Interfaces hit testing
  • 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. 1. Update selection model on click GEF4 MVC Distilled - Interaction Models/Behaviors
  • 17. 2. Create feedback & handles, reacting to selection change GEF4 MVC Distilled - Interaction Models/Behaviors
  • 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. 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. DEMO - GEF4 Zest.FX.UI Example
  • 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. 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. 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