SlideShare ist ein Scribd-Unternehmen logo
1 von 26
Downloaden Sie, um offline zu lesen
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

Weitere ähnliche Inhalte

Was ist angesagt?

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
 

Was ist angesagt? (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
 

Ähnlich wie 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
 

Ähnlich wie 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
 

Kürzlich hochgeladen

Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionIntroducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionOnePlan Solutions
 
%in Durban+277-882-255-28 abortion pills for sale in Durban
%in Durban+277-882-255-28 abortion pills for sale in Durban%in Durban+277-882-255-28 abortion pills for sale in Durban
%in Durban+277-882-255-28 abortion pills for sale in Durbanmasabamasaba
 
The title is not connected to what is inside
The title is not connected to what is insideThe title is not connected to what is inside
The title is not connected to what is insideshinachiaurasa2
 
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...SelfMade bd
 
Chinsurah Escorts ☎️8617697112 Starting From 5K to 15K High Profile Escorts ...
Chinsurah Escorts ☎️8617697112  Starting From 5K to 15K High Profile Escorts ...Chinsurah Escorts ☎️8617697112  Starting From 5K to 15K High Profile Escorts ...
Chinsurah Escorts ☎️8617697112 Starting From 5K to 15K High Profile Escorts ...Nitya salvi
 
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
 
%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
 
%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
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providermohitmore19
 
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park %in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park masabamasaba
 
SHRMPro HRMS Software Solutions Presentation
SHRMPro HRMS Software Solutions PresentationSHRMPro HRMS Software Solutions Presentation
SHRMPro HRMS Software Solutions PresentationShrmpro
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsArshad QA
 
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
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...harshavardhanraghave
 
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyviewmasabamasaba
 
%in Lydenburg+277-882-255-28 abortion pills for sale in Lydenburg
%in Lydenburg+277-882-255-28 abortion pills for sale in Lydenburg%in Lydenburg+277-882-255-28 abortion pills for sale in Lydenburg
%in Lydenburg+277-882-255-28 abortion pills for sale in Lydenburgmasabamasaba
 
8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech studentsHimanshiGarg82
 
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdfintroduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdfVishalKumarJha10
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplatePresentation.STUDIO
 

Kürzlich hochgeladen (20)

Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionIntroducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
 
%in Durban+277-882-255-28 abortion pills for sale in Durban
%in Durban+277-882-255-28 abortion pills for sale in Durban%in Durban+277-882-255-28 abortion pills for sale in Durban
%in Durban+277-882-255-28 abortion pills for sale in Durban
 
The title is not connected to what is inside
The title is not connected to what is insideThe title is not connected to what is inside
The title is not connected to what is inside
 
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
 
Chinsurah Escorts ☎️8617697112 Starting From 5K to 15K High Profile Escorts ...
Chinsurah Escorts ☎️8617697112  Starting From 5K to 15K High Profile Escorts ...Chinsurah Escorts ☎️8617697112  Starting From 5K to 15K High Profile Escorts ...
Chinsurah Escorts ☎️8617697112 Starting From 5K to 15K High Profile Escorts ...
 
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...
 
%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
 
%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
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park %in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
 
SHRMPro HRMS Software Solutions Presentation
SHRMPro HRMS Software Solutions PresentationSHRMPro HRMS Software Solutions Presentation
SHRMPro HRMS Software Solutions Presentation
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview Questions
 
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...
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
 
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
 
%in Lydenburg+277-882-255-28 abortion pills for sale in Lydenburg
%in Lydenburg+277-882-255-28 abortion pills for sale in Lydenburg%in Lydenburg+277-882-255-28 abortion pills for sale in Lydenburg
%in Lydenburg+277-882-255-28 abortion pills for sale in Lydenburg
 
8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
 
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdfintroduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation Template
 

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