SlideShare a Scribd company logo
1 of 26
Download to read offline
Image courtesy of Nasa
4
Sightseeing MarsNeon
Alexander Nyßen
itemis AG
Graphical Editing Framework Project Lead
GEF4
• Our approach to develop the next generation API of
the Graphical Editing Framework.
• Developed in parallel to Draw2D/GEF (MVC) 3.x and
Zest 1.x, which are in pure maintenance mode.
• First official release (0.1.0) with Mars, followed by bugfix
release (0.2.0) with Mars.1.
• Next release (0.3.0/1.0.0) with Neon, including revision of
various parts of the still provisional API with the goal to
graduate it.
Image courtesy of Lile Nel / flickr
GEF4 Components
• GEF4 provides nine loosely coupled components.
• DOT and Cloudio provide end-user features
• The other components form two basic framework stacks:
• Common, Geometry, FX, MVC
• Graph, Layout, Zest
Image courtesy of Michael Stern / flickr
GEF4 DOT - DOT editor
GEF4 DOT - DOT Graph view
GEF4 Cloudio -TagCloudView
GEF4 - Components
Image courtesy of AndiH / flickr
UI ≃ Eclipse UI
FX ≃ JavaFX
GEF4 Common
GEF4 Common
• Provides common (graphical-independent) abstractions
(IActivatable, IDisposable, etc.), including:
• IAdaptable „2.0“
*) probably revised in the future
// register and retrieve adapter 'a' of raw type 'A' under role 'a1'
adaptable.setAdapter(AdapterKey.get(A.class, "a1"));
A a = adaptable.getAdapter(AdapterKey.get(A.class, "a1"));
// register and retrieve adapter 'a' of parameterized type 'A<T>' under 'default' role
adaptable.setAdapter(new TypeToken<A<T>>(){}, a);
A<T> a = adaptable.getAdapter(new TypeToken<A<T>>(){});
// obtain a map binder to bind adapters for the respective IAdaptable type.
MapBinder<AdapterKey<?>, Object> adapterMapBinder = AdapterMaps.getAdapterMapBinder(binder(), MyAdaptable.class);
 
// add adapter (map) binding for binding adapter 'a' with parameterized type 'A<T>' to each MyAdaptable instance
adapterMapBinder.addBinding(AdapterKey.get(new TypeToken<A<T>>(){})).toInstance(a);
• AdapterMap injection
GEF4 - Components
Image courtesy of AndiH / flickr
UI ≃ Eclipse UI
FX ≃ JavaFX
GEF4 GeometryGEF4 Common
GEF4 Geometry
• Provides a double-precision Geometry API (with built-in
imprecision).
• Different geometric abstractions for different purposes:
• Euclidean (Vector, Straight,Angle)
• Projective (Vector3D, Straight3D)
• Planar (Point, Dimension, Line, QuadraticCurve, CubicCurve,
BezierCurve, Polyline, PolyBezier, Ellipse, Rectangle, Pie,Arc,
Polygon, CurvedPolygon, RoundedRectangle, Ring, Region, Path)
• Conversions to/from AWT, SWT, and JavaFX.
GEF4 Geometry - Examples
GEF4 - Components
Image courtesy of AndiH / flickr
UI ≃ Eclipse UI
FX ≃ JavaFX
GEF4 Geometry
GEF4 FX.SWT GEF4 FX
GEF4 Common
GEF4 FX.JFace
GEF4 FX
• Pure JavaFX extension like FXGeometryNode,
FXConnection, and InfiniteCanvas.
• Enhancements for the integration of JavaFX with SWT:
• FXCanvasEx, which supports forwarding of SWT gesture
events and proper notification of SWT focus listeners.
• FXControlAdapter to integrate SWT Controls into an
embedded JavaFX scene.
• Color and gradient pickers for usage in cell editors.
• JFace cell editor(s) and dialog(s) for color/gradient selection.
GEF4 FX - Examples
GEF4 - Components
Image courtesy of AndiH / flickr
UI ≃ Eclipse UI
FX ≃ JavaFX
GEF4 Geometry
GEF4 FX.SWT GEF4 MVC
GEF4 MVC.FX
GEF4 MVC.FX.UI
GEF4 FX
GEF4 MVC.UI
GEF4 Common
GEF4 FX.JFace
GEF4 MVC
• An intentionally light-weight model-view-controller
framework dedicated to graphical editors and views
• Split into UI-toolkit-independent abstractions (MVC),
JavaFX-based specializations (MVC.FX), and related
Eclipse UI-integration (MVC.UI/MVC.FX.UI)
• Flexibly configurable using (an enhanced) IAdaptable as well
as Guice-based dependency injection.
• Can be used to realize standalone (including web-deployed)
and Eclipse UI-integrated graphical applications.
DEMO - GEF4 MVC.FX.UI Example
GEF4 - Components
Image courtesy of AndiH / flickr
UI ≃ Eclipse UI
FX ≃ JavaFX
GEF4 Geometry
GEF4 FX.SWT GEF4 MVC
GEF4 MVC.FX
GEF4 MVC.FX.UI
GEF4 FX
GEF4 MVC.UI
GEF4 Graph
GEF4 Common
GEF4 FX.JFace
GEF4 Graph
• Provides a simple (POJO) Graph model to represent graph-
like structures and a related builder structure.
// Nodes, edges, and attributes can be added in arbitrary order */
Graph g1 = new Graph.Builder().attr(DotProperties.GRAPH_TYPE, DotProperties.GRAPH_TYPE_UNDIRECTED)
.node("n1").attr(DotProperties.NODE_LABEL, "1").attr(DotProperties.NODE_ID, "1")
.node("n2").attr(DotProperties.NODE_LABEL, "2").attr(DotProperties.NODE_ID, "2")
.node("n3").attr(DotProperties.NODE_LABEL, "3").attr(DotProperties.NODE_ID, "3")
.edge("n1", "n2").edge("n1", "n3")
.build();
GEF4 - Components
Image courtesy of AndiH / flickr
UI ≃ Eclipse UI
FX ≃ JavaFX
GEF4 Geometry
GEF4 FX.SWT
GEF4 Layout
GEF4 MVC
GEF4 MVC.FX
GEF4 MVC.FX.UI
GEF4 FX
GEF4 MVC.UI
GEF4 Graph
GEF4 Common
GEF4 FX.JFace
GEF4 Layout
• Provides abstractions (ILayoutAlgorithm, ILayoutContext,
ILayoutFilter) related to layout algorithms
• Provides concrete layout algorithm implementations: Grid,
Box, Spring, HorizontalShift,Tree, Radial, SpaceTree, Sugiyama
GEF4 - Components
Image courtesy of AndiH / flickr
UI ≃ Eclipse UI
FX ≃ JavaFX
GEF4 Geometry
GEF4 FX.SWT
GEF4 Layout
GEF4 MVC
GEF4 MVC.FX
GEF4 Zest.FX
GEF4 MVC.FX.UI
GEF4 FX
GEF4 MVC.UI
GEF4 Graph
GEF4 Zest.FX.UI
GEF4 Common
GEF4 FX.JFace
GEF4 Zest.FX.JFace
GEF4 Zest
• Provides graph based visualization with auto-layout
• Support for hierarchies with nested graphs
• Semantic zooming (zoom into nested graphs)
• Provides a JFace API (ContentViewer, ContentProvider)
• Customizable using CSS and GEF4 MVC mechanisms.
• Rewritten from scratch, replacing the former Zest2 code
base, which was initially transferred to GEF4
DEMO - GEF4 Zest.FX.UI Example
GEF4 - Components
Image courtesy of AndiH / flickr
UI ≃ Eclipse UI
FX ≃ JavaFX
GEF4 Geometry
GEF4 FX.SWT
GEF4 Layout
GEF4 MVC
GEF4 MVC.FX
GEF4 Zest.FX
GEF4 MVC.FX.UI
GEF4 FX
GEF4 MVC.UI
GEF4 Graph
GEF4 Zest.FX.UI
GEF4
DOT
GEF4 Common
GEF4
Cloudio.
UI
GEF4 FX.JFace
GEF4 Zest.FX.JFace
GEF4 DOT.UI
Image courtesy of Bilal Kamoon / flickr

More Related Content

What's hot

Quick introduction to Angular 4 for AngularJS 1.5 developers
Quick introduction to Angular 4 for AngularJS 1.5 developersQuick introduction to Angular 4 for AngularJS 1.5 developers
Quick introduction to Angular 4 for AngularJS 1.5 developersPaweł Żurowski
 
Angular Ivy- An Overview
Angular Ivy- An OverviewAngular Ivy- An Overview
Angular Ivy- An OverviewJalpesh Vadgama
 
Building scalable modular app with Angular2 concept
Building scalable modular app with Angular2 conceptBuilding scalable modular app with Angular2 concept
Building scalable modular app with Angular2 conceptkzw
 
Building a website with angular
Building a website with angularBuilding a website with angular
Building a website with angularJoseph Jorden
 
Angular 2 - Core Concepts
Angular 2 - Core ConceptsAngular 2 - Core Concepts
Angular 2 - Core ConceptsFabio Biondi
 
Angular 2: core concepts
Angular 2: core conceptsAngular 2: core concepts
Angular 2: core conceptsCodemotion
 
Mastering angular - Dot Net Tricks
Mastering angular - Dot Net TricksMastering angular - Dot Net Tricks
Mastering angular - Dot Net TricksGaurav Singh
 
Swift LA Meetup at eHarmony- Swift and Enterprise and eHarmony with Heena Ras...
Swift LA Meetup at eHarmony- Swift and Enterprise and eHarmony with Heena Ras...Swift LA Meetup at eHarmony- Swift and Enterprise and eHarmony with Heena Ras...
Swift LA Meetup at eHarmony- Swift and Enterprise and eHarmony with Heena Ras...Claire Townend Gee
 
Angular 4 fronts
Angular 4 frontsAngular 4 fronts
Angular 4 frontsbadal dubla
 
Angular App Presentation
Angular App PresentationAngular App Presentation
Angular App PresentationElizabeth Long
 
An Intro to Angular 2
An Intro to Angular 2An Intro to Angular 2
An Intro to Angular 2Ron Heft
 
Jenkins Continuous Delivery
Jenkins Continuous DeliveryJenkins Continuous Delivery
Jenkins Continuous DeliveryJadson Santos
 
Introduction to Angular2
Introduction to Angular2Introduction to Angular2
Introduction to Angular2Ivan Matiishyn
 
AngularJS Vs Angular: Understanding the Differences
AngularJS Vs Angular: Understanding the DifferencesAngularJS Vs Angular: Understanding the Differences
AngularJS Vs Angular: Understanding the DifferencesTechtic Solutions
 

What's hot (20)

Angular 4 - quick view
Angular 4 - quick viewAngular 4 - quick view
Angular 4 - quick view
 
Quick introduction to Angular 4 for AngularJS 1.5 developers
Quick introduction to Angular 4 for AngularJS 1.5 developersQuick introduction to Angular 4 for AngularJS 1.5 developers
Quick introduction to Angular 4 for AngularJS 1.5 developers
 
Angular 9
Angular 9 Angular 9
Angular 9
 
Angular Ivy- An Overview
Angular Ivy- An OverviewAngular Ivy- An Overview
Angular Ivy- An Overview
 
Building scalable modular app with Angular2 concept
Building scalable modular app with Angular2 conceptBuilding scalable modular app with Angular2 concept
Building scalable modular app with Angular2 concept
 
Building a website with angular
Building a website with angularBuilding a website with angular
Building a website with angular
 
Angular2
Angular2Angular2
Angular2
 
Angular 2 - Core Concepts
Angular 2 - Core ConceptsAngular 2 - Core Concepts
Angular 2 - Core Concepts
 
Angular 2: core concepts
Angular 2: core conceptsAngular 2: core concepts
Angular 2: core concepts
 
Angular 2
Angular 2Angular 2
Angular 2
 
Mastering angular - Dot Net Tricks
Mastering angular - Dot Net TricksMastering angular - Dot Net Tricks
Mastering angular - Dot Net Tricks
 
An Overview of Angular 4
An Overview of Angular 4 An Overview of Angular 4
An Overview of Angular 4
 
Swift LA Meetup at eHarmony- Swift and Enterprise and eHarmony with Heena Ras...
Swift LA Meetup at eHarmony- Swift and Enterprise and eHarmony with Heena Ras...Swift LA Meetup at eHarmony- Swift and Enterprise and eHarmony with Heena Ras...
Swift LA Meetup at eHarmony- Swift and Enterprise and eHarmony with Heena Ras...
 
Angular 2
Angular 2Angular 2
Angular 2
 
Angular 4 fronts
Angular 4 frontsAngular 4 fronts
Angular 4 fronts
 
Angular App Presentation
Angular App PresentationAngular App Presentation
Angular App Presentation
 
An Intro to Angular 2
An Intro to Angular 2An Intro to Angular 2
An Intro to Angular 2
 
Jenkins Continuous Delivery
Jenkins Continuous DeliveryJenkins Continuous Delivery
Jenkins Continuous Delivery
 
Introduction to Angular2
Introduction to Angular2Introduction to Angular2
Introduction to Angular2
 
AngularJS Vs Angular: Understanding the Differences
AngularJS Vs Angular: Understanding the DifferencesAngularJS Vs Angular: Understanding the Differences
AngularJS Vs Angular: Understanding the Differences
 

Similar to GEF4 - Sightseeing Mars

GEF Past, present, future
GEF Past, present, futureGEF Past, present, future
GEF Past, present, futureitemis AG
 
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
 
The Eclipse Layout Kernel sirius con 2017
The Eclipse Layout Kernel   sirius con 2017The Eclipse Layout Kernel   sirius con 2017
The Eclipse Layout Kernel sirius con 2017Dr. Jan Köhnlein
 
State of GeoServer 2.10
State of GeoServer 2.10State of GeoServer 2.10
State of GeoServer 2.10Jody Garnett
 
LocationTech Projects
LocationTech ProjectsLocationTech Projects
LocationTech ProjectsJody Garnett
 
lectureAll-OpenGL-complete-Guide-Tutorial.pdf
lectureAll-OpenGL-complete-Guide-Tutorial.pdflectureAll-OpenGL-complete-Guide-Tutorial.pdf
lectureAll-OpenGL-complete-Guide-Tutorial.pdfSanjeevSaharan5
 
Gef tutorial 2005
Gef tutorial 2005Gef tutorial 2005
Gef tutorial 2005Ryan Wang
 
Introduction of openGL
Introduction  of openGLIntroduction  of openGL
Introduction of openGLGary Yeh
 
GTC 2009 OpenGL Barthold
GTC 2009 OpenGL BartholdGTC 2009 OpenGL Barthold
GTC 2009 OpenGL BartholdMark Kilgard
 
OpenGL 4.5 Update for NVIDIA GPUs
OpenGL 4.5 Update for NVIDIA GPUsOpenGL 4.5 Update for NVIDIA GPUs
OpenGL 4.5 Update for NVIDIA GPUsMark Kilgard
 
NVIDIA's OpenGL Functionality
NVIDIA's OpenGL FunctionalityNVIDIA's OpenGL Functionality
NVIDIA's OpenGL FunctionalityMark Kilgard
 
Ajax Applications with JSF 2 and New RichFaces 4 - TSSJS
Ajax Applications with JSF 2 and New RichFaces 4 - TSSJSAjax Applications with JSF 2 and New RichFaces 4 - TSSJS
Ajax Applications with JSF 2 and New RichFaces 4 - TSSJSMax Katz
 

Similar to GEF4 - Sightseeing Mars (20)

GEF Past, present, future
GEF Past, present, futureGEF Past, present, future
GEF Past, present, future
 
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.
 
The Eclipse Layout Kernel sirius con 2017
The Eclipse Layout Kernel   sirius con 2017The Eclipse Layout Kernel   sirius con 2017
The Eclipse Layout Kernel sirius con 2017
 
How to Use OpenGL/ES on Native Activity
How to Use OpenGL/ES on Native ActivityHow to Use OpenGL/ES on Native Activity
How to Use OpenGL/ES on Native Activity
 
Android native gl
Android native glAndroid native gl
Android native gl
 
Data structures graphics library in computer graphics.
Data structures  graphics library in computer graphics.Data structures  graphics library in computer graphics.
Data structures graphics library in computer graphics.
 
OpenGL Introduction
OpenGL IntroductionOpenGL Introduction
OpenGL Introduction
 
Opengl (1)
Opengl (1)Opengl (1)
Opengl (1)
 
Opengl basics
Opengl basicsOpengl basics
Opengl basics
 
Gephi Toolkit Tutorial
Gephi Toolkit TutorialGephi Toolkit Tutorial
Gephi Toolkit Tutorial
 
State of GeoServer 2.10
State of GeoServer 2.10State of GeoServer 2.10
State of GeoServer 2.10
 
LocationTech Projects
LocationTech ProjectsLocationTech Projects
LocationTech Projects
 
Bai 1
Bai 1Bai 1
Bai 1
 
lectureAll-OpenGL-complete-Guide-Tutorial.pdf
lectureAll-OpenGL-complete-Guide-Tutorial.pdflectureAll-OpenGL-complete-Guide-Tutorial.pdf
lectureAll-OpenGL-complete-Guide-Tutorial.pdf
 
Gef tutorial 2005
Gef tutorial 2005Gef tutorial 2005
Gef tutorial 2005
 
Introduction of openGL
Introduction  of openGLIntroduction  of openGL
Introduction of openGL
 
GTC 2009 OpenGL Barthold
GTC 2009 OpenGL BartholdGTC 2009 OpenGL Barthold
GTC 2009 OpenGL Barthold
 
OpenGL 4.5 Update for NVIDIA GPUs
OpenGL 4.5 Update for NVIDIA GPUsOpenGL 4.5 Update for NVIDIA GPUs
OpenGL 4.5 Update for NVIDIA GPUs
 
NVIDIA's OpenGL Functionality
NVIDIA's OpenGL FunctionalityNVIDIA's OpenGL Functionality
NVIDIA's OpenGL Functionality
 
Ajax Applications with JSF 2 and New RichFaces 4 - TSSJS
Ajax Applications with JSF 2 and New RichFaces 4 - TSSJSAjax Applications with JSF 2 and New RichFaces 4 - TSSJS
Ajax Applications with JSF 2 and New RichFaces 4 - TSSJS
 

Recently uploaded

call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️Delhi Call girls
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplatePresentation.STUDIO
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️Delhi Call girls
 
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...masabamasaba
 
WSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go PlatformlessWSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go PlatformlessWSO2
 
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...Shane Coughlan
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Steffen Staab
 
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfonteinmasabamasaba
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...panagenda
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsArshad QA
 
%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrandmasabamasaba
 
Announcing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK SoftwareAnnouncing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK SoftwareJim McKeeth
 
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital TransformationWSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital TransformationWSO2
 
WSO2CON 2024 - Does Open Source Still Matter?
WSO2CON 2024 - Does Open Source Still Matter?WSO2CON 2024 - Does Open Source Still Matter?
WSO2CON 2024 - Does Open Source Still Matter?WSO2
 
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...WSO2
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisamasabamasaba
 
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfonteinmasabamasaba
 
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrainmasabamasaba
 
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
Direct Style Effect Systems -The Print[A] Example- A Comprehension AidDirect Style Effect Systems -The Print[A] Example- A Comprehension Aid
Direct Style Effect Systems - The Print[A] Example - A Comprehension AidPhilip Schwarz
 

Recently uploaded (20)

call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation Template
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
 
WSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go PlatformlessWSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go Platformless
 
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview Questions
 
%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand
 
Announcing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK SoftwareAnnouncing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK Software
 
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital TransformationWSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
 
WSO2CON 2024 - Does Open Source Still Matter?
WSO2CON 2024 - Does Open Source Still Matter?WSO2CON 2024 - Does Open Source Still Matter?
WSO2CON 2024 - Does Open Source Still Matter?
 
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
 
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
 
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
 
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
Direct Style Effect Systems -The Print[A] Example- A Comprehension AidDirect Style Effect Systems -The Print[A] Example- A Comprehension Aid
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
 

GEF4 - Sightseeing Mars

  • 1. Image courtesy of Nasa 4 Sightseeing MarsNeon Alexander Nyßen itemis AG Graphical Editing Framework Project Lead
  • 2. GEF4 • Our approach to develop the next generation API of the Graphical Editing Framework. • Developed in parallel to Draw2D/GEF (MVC) 3.x and Zest 1.x, which are in pure maintenance mode. • First official release (0.1.0) with Mars, followed by bugfix release (0.2.0) with Mars.1. • Next release (0.3.0/1.0.0) with Neon, including revision of various parts of the still provisional API with the goal to graduate it. Image courtesy of Lile Nel / flickr
  • 3. GEF4 Components • GEF4 provides nine loosely coupled components. • DOT and Cloudio provide end-user features • The other components form two basic framework stacks: • Common, Geometry, FX, MVC • Graph, Layout, Zest Image courtesy of Michael Stern / flickr
  • 4. GEF4 DOT - DOT editor
  • 5. GEF4 DOT - DOT Graph view
  • 7. GEF4 - Components Image courtesy of AndiH / flickr UI ≃ Eclipse UI FX ≃ JavaFX GEF4 Common
  • 8. GEF4 Common • Provides common (graphical-independent) abstractions (IActivatable, IDisposable, etc.), including: • IAdaptable „2.0“ *) probably revised in the future // register and retrieve adapter 'a' of raw type 'A' under role 'a1' adaptable.setAdapter(AdapterKey.get(A.class, "a1")); A a = adaptable.getAdapter(AdapterKey.get(A.class, "a1")); // register and retrieve adapter 'a' of parameterized type 'A<T>' under 'default' role adaptable.setAdapter(new TypeToken<A<T>>(){}, a); A<T> a = adaptable.getAdapter(new TypeToken<A<T>>(){}); // obtain a map binder to bind adapters for the respective IAdaptable type. MapBinder<AdapterKey<?>, Object> adapterMapBinder = AdapterMaps.getAdapterMapBinder(binder(), MyAdaptable.class);   // add adapter (map) binding for binding adapter 'a' with parameterized type 'A<T>' to each MyAdaptable instance adapterMapBinder.addBinding(AdapterKey.get(new TypeToken<A<T>>(){})).toInstance(a); • AdapterMap injection
  • 9. GEF4 - Components Image courtesy of AndiH / flickr UI ≃ Eclipse UI FX ≃ JavaFX GEF4 GeometryGEF4 Common
  • 10. GEF4 Geometry • Provides a double-precision Geometry API (with built-in imprecision). • Different geometric abstractions for different purposes: • Euclidean (Vector, Straight,Angle) • Projective (Vector3D, Straight3D) • Planar (Point, Dimension, Line, QuadraticCurve, CubicCurve, BezierCurve, Polyline, PolyBezier, Ellipse, Rectangle, Pie,Arc, Polygon, CurvedPolygon, RoundedRectangle, Ring, Region, Path) • Conversions to/from AWT, SWT, and JavaFX.
  • 11. GEF4 Geometry - Examples
  • 12. GEF4 - Components Image courtesy of AndiH / flickr UI ≃ Eclipse UI FX ≃ JavaFX GEF4 Geometry GEF4 FX.SWT GEF4 FX GEF4 Common GEF4 FX.JFace
  • 13. GEF4 FX • Pure JavaFX extension like FXGeometryNode, FXConnection, and InfiniteCanvas. • Enhancements for the integration of JavaFX with SWT: • FXCanvasEx, which supports forwarding of SWT gesture events and proper notification of SWT focus listeners. • FXControlAdapter to integrate SWT Controls into an embedded JavaFX scene. • Color and gradient pickers for usage in cell editors. • JFace cell editor(s) and dialog(s) for color/gradient selection.
  • 14. GEF4 FX - Examples
  • 15. GEF4 - Components Image courtesy of AndiH / flickr UI ≃ Eclipse UI FX ≃ JavaFX GEF4 Geometry GEF4 FX.SWT GEF4 MVC GEF4 MVC.FX GEF4 MVC.FX.UI GEF4 FX GEF4 MVC.UI GEF4 Common GEF4 FX.JFace
  • 16. GEF4 MVC • An intentionally light-weight model-view-controller framework dedicated to graphical editors and views • Split into UI-toolkit-independent abstractions (MVC), JavaFX-based specializations (MVC.FX), and related Eclipse UI-integration (MVC.UI/MVC.FX.UI) • Flexibly configurable using (an enhanced) IAdaptable as well as Guice-based dependency injection. • Can be used to realize standalone (including web-deployed) and Eclipse UI-integrated graphical applications.
  • 17. DEMO - GEF4 MVC.FX.UI Example
  • 18. GEF4 - Components Image courtesy of AndiH / flickr UI ≃ Eclipse UI FX ≃ JavaFX GEF4 Geometry GEF4 FX.SWT GEF4 MVC GEF4 MVC.FX GEF4 MVC.FX.UI GEF4 FX GEF4 MVC.UI GEF4 Graph GEF4 Common GEF4 FX.JFace
  • 19. GEF4 Graph • Provides a simple (POJO) Graph model to represent graph- like structures and a related builder structure. // Nodes, edges, and attributes can be added in arbitrary order */ Graph g1 = new Graph.Builder().attr(DotProperties.GRAPH_TYPE, DotProperties.GRAPH_TYPE_UNDIRECTED) .node("n1").attr(DotProperties.NODE_LABEL, "1").attr(DotProperties.NODE_ID, "1") .node("n2").attr(DotProperties.NODE_LABEL, "2").attr(DotProperties.NODE_ID, "2") .node("n3").attr(DotProperties.NODE_LABEL, "3").attr(DotProperties.NODE_ID, "3") .edge("n1", "n2").edge("n1", "n3") .build();
  • 20. GEF4 - Components Image courtesy of AndiH / flickr UI ≃ Eclipse UI FX ≃ JavaFX GEF4 Geometry GEF4 FX.SWT GEF4 Layout GEF4 MVC GEF4 MVC.FX GEF4 MVC.FX.UI GEF4 FX GEF4 MVC.UI GEF4 Graph GEF4 Common GEF4 FX.JFace
  • 21. GEF4 Layout • Provides abstractions (ILayoutAlgorithm, ILayoutContext, ILayoutFilter) related to layout algorithms • Provides concrete layout algorithm implementations: Grid, Box, Spring, HorizontalShift,Tree, Radial, SpaceTree, Sugiyama
  • 22. GEF4 - Components Image courtesy of AndiH / flickr UI ≃ Eclipse UI FX ≃ JavaFX GEF4 Geometry GEF4 FX.SWT GEF4 Layout GEF4 MVC GEF4 MVC.FX GEF4 Zest.FX GEF4 MVC.FX.UI GEF4 FX GEF4 MVC.UI GEF4 Graph GEF4 Zest.FX.UI GEF4 Common GEF4 FX.JFace GEF4 Zest.FX.JFace
  • 23. GEF4 Zest • Provides graph based visualization with auto-layout • Support for hierarchies with nested graphs • Semantic zooming (zoom into nested graphs) • Provides a JFace API (ContentViewer, ContentProvider) • Customizable using CSS and GEF4 MVC mechanisms. • Rewritten from scratch, replacing the former Zest2 code base, which was initially transferred to GEF4
  • 24. DEMO - GEF4 Zest.FX.UI Example
  • 25. GEF4 - Components Image courtesy of AndiH / flickr UI ≃ Eclipse UI FX ≃ JavaFX GEF4 Geometry GEF4 FX.SWT GEF4 Layout GEF4 MVC GEF4 MVC.FX GEF4 Zest.FX GEF4 MVC.FX.UI GEF4 FX GEF4 MVC.UI GEF4 Graph GEF4 Zest.FX.UI GEF4 DOT GEF4 Common GEF4 Cloudio. UI GEF4 FX.JFace GEF4 Zest.FX.JFace GEF4 DOT.UI
  • 26. Image courtesy of Bilal Kamoon / flickr