SlideShare a Scribd company logo
Past, Present & Future
Alexander Nyßen
itemis AG
Past
It all began...
... at IBM, of course (etools).
Image: winnond / FreeDigitalPhotos.net
It‘s Birthday Time!
Draw2d & GEF (MVC)
• Initial contribution of Draw2d & GEF (MVC) by IBM in 2002.
GEF (MVC) - an interactive model-view-controller
framework, which fosters the implementation of SWT-
based tree editors and Draw2d-based graphical
editors (and views) for the Eclipse UI Workbench.
Draw2d - 2D rendering framework; lightweight
extension to SWT. May be used stand-alone or as
visualization technology for GEF (MVC).
Draw2d & GEF (MVC)
GEF 3.0 (2004)
• Most of the features that make up GEF where introduced:
• Rulers & Guides, Grid
• Snap-to-Geometry, Centered Resize, Match Size ,
Constraint Move and Resize, Cloning, Panning
• PaletteView, Flyout Palette, Palette Stacks
• Shortest Path Connection Routing
• Since then, the APIs of Draw2d and GEF (MVC) have stayed
backwards compatible.
But that's not all ...
Image: renjith krishnan / FreeDigitalPhotos.net
Zest
• Initial contribution of Zest by University of Victoria and IBM
Centre for Advanced Studies as part of Mylyn in 2005.
• Joined in on GEF as third component with the 3.4 release
in 2007.
Zest - a visualization toolkit based on SWT and
Draw2d to support the implementation of views with
automatic or semi-automatic layout for the Eclipse
Workbench UI.
Zest
GEF 3.4 / Zest 1.0 (2008)
• Modularization into two
components:
• Draw2d
• GEF (MVC)
• Integration of Zest as third
component.
• GEF releng moved to common
modeling build tools.
• Redesigned UI for Palette (GEF)
GEF 3.5 / Zest 1.1 (2009)
• Support for SWT line style attributes (Draw2d)
• Advanced Graphics support (Draw2d)
• Curved Connections (Zest)
• Nested content provider (Zest)
GEF 3.6 / Zest 1.2 (2010)
• Improved clipping via IClippingStrategy (Draw2d)
• Scrollable Feedback support (GEF)
GEF 3.7 / Zest 1.3 (2011)
• Refactoring of Draw2d geometry classes (inconsistencies)
• Refactoring of FlowLayout and ToolbarLayout (introduced
OrderedLayout)
• Refactoring of LayoutEditPolicies
• Constraint Size-On-Drop Creation
• Additional Marquee Selection strategies
• Refactoring of UndoablePropertySheetPage (undo/redo
support while editor is inactive; opened for subclassing)
Present
GEF - Facts & Figures
• 10 committers (5 currently active, 2 new in 2012)
• Alex Boyko
• Anthony Hunter (Project Lead)
• Alexander Nyßen
• Cherie Revells
• Fabian Steeg
• 3 Git repositories (gef, gef4, zest)
• 4 Hudson jobs (gef-nightly-tycho, gef4-nightly-tycho, gef-zest-nightly, gef-zest-integration)
• Ian Bull
• Marc Gobeil
• Nick Boldt
• Stephan Schwiebert
• Zoltan Ujhelyi
GEF 3.8 / Zest 1.4 (2012)
• Migration of source code repository from CVS to Git
• Migration of release engineering infrastructure from common
modeling build to Tycho/Hudson:
• gef-nightly-tycho build on hudson.eclipse.org
• nightly builds as well as weekly integration builds are
now publicly available
• Bug fixes, clean-ups, no major new-and-noteworthy
features
GEF 3.8 / Zest 1.4
• Currently we have around ~400 open bugs/CRs.
• Our quality of processing is improving...
• A lot of issues will not be resolvable without breaking API.
Metric calculated according to http://bugzillametrics.sourceforge.net/Process_Quality_Eclipse.pdf
• How long does it take to fix a new CR?
• How often has a fixed CR to be reopened?
• How friction-less is the processing of CRs?
0"
0,5"
1"
1,5"
2"
2,5"
3"
3,5"
2005" 2006" 2007" 2008" 2009" 2010" 2011" 2012*"
D.#Quality#of#Processing#the#CRs#
GEF"
Pla3orm"
Zest 2 (since 2010)
• A provisional Zest 2 component was initiated in 2010, to
develop the next generation Zest API.
• Development takes place in parallel to maintenance of
Zest 1.x in its own Git repository.
• API is regarded to be provisional up to the final graduation.
• Results are not provided as part of GEF 3.x / Zest 1.x but
published via Eclipse Marketplace.
Zest 2 - New Features
• Dot 4 Zest
• Cloudio
GEF4 (since 2011)
• GEF4 was initiated - according to Zest 2 - to develop the next
generation API for Draw2d and GEF (MVC).
• Development is to take place in parallel to maintenance of
Draw2d / GEF (MVC) 3.x in its own repository.
• Results are not provided provided as part of GEF 3.x / Zest 1.x but
on own update-sites.
• Plan:
• Create new double-precision Geometry API before 3.8.
• Migrate the Draw2d and GEF (MVC) 3.8 code base
afterwards.
GEF4 Geometry*
• No low and high precision, just a single double-precision API
(with built-in imprecision for comparisons).
• Different geometric abstractions for different purposes:
• Euclidean (Vector, Straight)
• Projective+ (Vector3D+, Straight3D+)
• Planar+ (IGeometry+, ICurve, IShape, IPolyCurve, IPolyShape)
+) If you have a good idea how to alternatively name these abstractions, please let me know...*) CQ 6363 incorporated
GEF4 Planar Geometry*
*) CQ 6363 incorporated
GEF4 Geometry - Examples*
*) CQ 6363 incorporated
Future
GEF4 + Zest 2 = GEF4
Unification of both approaches after Juno!
GEF4 - A Unified Approach
• A unified approach with a shared code base and a
common namespace (org.eclipse.gef4) for all plug-ins.
• Advantages:
• Clear distinction between GEF proper as the production
component and GEF4 as the provisional one
• Chance to not only refactor GEF components but the
componentization itself, which is only "historically" justified.
SomeTopics for GEF4
• Re-thinking current componentization
• Support for the E4 application model
• Support for rotation and other transformations
• Support for B-Spline-connections
• Better integrability of native SWT widgets
• Multi-touch gestures support
• Revision of the command framework
• Revision of connection handling (clipping container)
• Various renamings and restructurings on the detail level...
Just one more thing...
• It's an often requested feature to use GEF in the web.
• This is out of scope for the GEF project itself, while GEF4
might do what is possible to better enable it.
• Ports based on GEF 3.x / Zest 1.x:
• RAP Incubator - GEF-Port
• Architexa: http://www.codemaps.org/e/Eclipse_GEF
• GEFGWT (GWT): http://gefgwt.org/
• There is an active discussion on gef-dev mailing list. Participate!
ThankYou! Questions?

More Related Content

What's hot

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
kzw
 
Angular 4 - quick view
Angular 4 - quick viewAngular 4 - quick view
Angular 4 - quick view
Michael Haberman
 
Angular2
Angular2Angular2
Angular 2 - Core Concepts
Angular 2 - Core ConceptsAngular 2 - Core Concepts
Angular 2 - Core Concepts
Fabio Biondi
 
Angular 2: core concepts
Angular 2: core conceptsAngular 2: core concepts
Angular 2: core concepts
Codemotion
 
Angular 2
Angular 2Angular 2
Angular 9
Angular 9 Angular 9
Angular 9
Raja Vishnu
 
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
Paweł Żurowski
 
Angular2 with type script
Angular2 with type scriptAngular2 with type script
Angular2 with type script
Ravi Mone
 
Angular Ivy- An Overview
Angular Ivy- An OverviewAngular Ivy- An Overview
Angular Ivy- An Overview
Jalpesh Vadgama
 
Tech Webinar: Angular 2, Introduction to a new framework
Tech Webinar: Angular 2, Introduction to a new frameworkTech Webinar: Angular 2, Introduction to a new framework
Tech Webinar: Angular 2, Introduction to a new framework
Codemotion
 
Computer Viewing
Computer ViewingComputer Viewing
Computer Viewing
Syed Zaid Irshad
 
Angular 2
Angular 2Angular 2

What's hot (13)

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
 
Angular 4 - quick view
Angular 4 - quick viewAngular 4 - quick view
Angular 4 - quick view
 
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
 
Angular 9
Angular 9 Angular 9
Angular 9
 
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
 
Angular2 with type script
Angular2 with type scriptAngular2 with type script
Angular2 with type script
 
Angular Ivy- An Overview
Angular Ivy- An OverviewAngular Ivy- An Overview
Angular Ivy- An Overview
 
Tech Webinar: Angular 2, Introduction to a new framework
Tech Webinar: Angular 2, Introduction to a new frameworkTech Webinar: Angular 2, Introduction to a new framework
Tech Webinar: Angular 2, Introduction to a new framework
 
Computer Viewing
Computer ViewingComputer Viewing
Computer Viewing
 
Angular 2
Angular 2Angular 2
Angular 2
 

Similar to GEF - Past, Present, and Future

GEF Past, present, future
GEF Past, present, futureGEF Past, present, future
GEF Past, present, future
itemis AG
 
State of GeoServer 2.10
State of GeoServer 2.10State of GeoServer 2.10
State of GeoServer 2.10
Jody Garnett
 
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
 
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
Mark Kilgard
 
Gustavo Garnica: Evolución de la Plataforma Java y lo que Significa para Ti
Gustavo Garnica: Evolución de la Plataforma Java y lo que Significa para TiGustavo Garnica: Evolución de la Plataforma Java y lo que Significa para Ti
Gustavo Garnica: Evolución de la Plataforma Java y lo que Significa para Ti
Software Guru
 
State of GeoServer
State of GeoServerState of GeoServer
State of GeoServer
Jody Garnett
 
Ajax Applications with JSF 2 and New RichFaces 4 - CONFESS 2011
Ajax Applications with JSF 2 and New RichFaces 4 - CONFESS 2011Ajax Applications with JSF 2 and New RichFaces 4 - CONFESS 2011
Ajax Applications with JSF 2 and New RichFaces 4 - CONFESS 2011
Max Katz
 
Introduction of openGL
Introduction  of openGLIntroduction  of openGL
Introduction of openGL
Gary Yeh
 
Short Introduction of software engineering for bioinformatics
Short Introduction of software engineering for bioinformatics Short Introduction of software engineering for bioinformatics
Short Introduction of software engineering for bioinformatics
丈 宮本
 
State of JTS 2018
State of JTS 2018State of JTS 2018
State of JTS 2018
Jody Garnett
 
NLOUG 2018 - Future of JSF and ADF
NLOUG 2018 - Future of JSF and ADFNLOUG 2018 - Future of JSF and ADF
NLOUG 2018 - Future of JSF and ADF
Daniel Merchán García
 
Angular 2 overview
Angular 2 overviewAngular 2 overview
Angular 2 overview
Jesse Warden
 
Advanced Graphics Workshop - GFX2011
Advanced Graphics Workshop - GFX2011Advanced Graphics Workshop - GFX2011
Advanced Graphics Workshop - GFX2011
Prabindh Sundareson
 
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
Max Katz
 
Build 2017 - Whats new for Xamarin Devs
Build 2017 - Whats new for Xamarin DevsBuild 2017 - Whats new for Xamarin Devs
Build 2017 - Whats new for Xamarin Devs
Mike James
 
State of GeoServer 2015
State of GeoServer 2015State of GeoServer 2015
State of GeoServer 2015
Jody Garnett
 
Development of web apps based on JSF (TU Vienna)
Development of web apps based on JSF (TU Vienna)Development of web apps based on JSF (TU Vienna)
Development of web apps based on JSF (TU Vienna)
blahap
 
OpenDaylight Developer Experience 2.0
 OpenDaylight Developer Experience 2.0 OpenDaylight Developer Experience 2.0
OpenDaylight Developer Experience 2.0
Michael Vorburger
 
CTS2 Development Framework
CTS2 Development FrameworkCTS2 Development Framework
CTS2 Development Framework
cts2framework
 
State of JTS 2017
State of JTS 2017State of JTS 2017
State of JTS 2017
Jody Garnett
 

Similar to GEF - Past, Present, and Future (20)

GEF Past, present, future
GEF Past, present, futureGEF Past, present, future
GEF Past, present, future
 
State of GeoServer 2.10
State of GeoServer 2.10State of GeoServer 2.10
State of GeoServer 2.10
 
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.
 
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
 
Gustavo Garnica: Evolución de la Plataforma Java y lo que Significa para Ti
Gustavo Garnica: Evolución de la Plataforma Java y lo que Significa para TiGustavo Garnica: Evolución de la Plataforma Java y lo que Significa para Ti
Gustavo Garnica: Evolución de la Plataforma Java y lo que Significa para Ti
 
State of GeoServer
State of GeoServerState of GeoServer
State of GeoServer
 
Ajax Applications with JSF 2 and New RichFaces 4 - CONFESS 2011
Ajax Applications with JSF 2 and New RichFaces 4 - CONFESS 2011Ajax Applications with JSF 2 and New RichFaces 4 - CONFESS 2011
Ajax Applications with JSF 2 and New RichFaces 4 - CONFESS 2011
 
Introduction of openGL
Introduction  of openGLIntroduction  of openGL
Introduction of openGL
 
Short Introduction of software engineering for bioinformatics
Short Introduction of software engineering for bioinformatics Short Introduction of software engineering for bioinformatics
Short Introduction of software engineering for bioinformatics
 
State of JTS 2018
State of JTS 2018State of JTS 2018
State of JTS 2018
 
NLOUG 2018 - Future of JSF and ADF
NLOUG 2018 - Future of JSF and ADFNLOUG 2018 - Future of JSF and ADF
NLOUG 2018 - Future of JSF and ADF
 
Angular 2 overview
Angular 2 overviewAngular 2 overview
Angular 2 overview
 
Advanced Graphics Workshop - GFX2011
Advanced Graphics Workshop - GFX2011Advanced Graphics Workshop - GFX2011
Advanced Graphics Workshop - GFX2011
 
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
 
Build 2017 - Whats new for Xamarin Devs
Build 2017 - Whats new for Xamarin DevsBuild 2017 - Whats new for Xamarin Devs
Build 2017 - Whats new for Xamarin Devs
 
State of GeoServer 2015
State of GeoServer 2015State of GeoServer 2015
State of GeoServer 2015
 
Development of web apps based on JSF (TU Vienna)
Development of web apps based on JSF (TU Vienna)Development of web apps based on JSF (TU Vienna)
Development of web apps based on JSF (TU Vienna)
 
OpenDaylight Developer Experience 2.0
 OpenDaylight Developer Experience 2.0 OpenDaylight Developer Experience 2.0
OpenDaylight Developer Experience 2.0
 
CTS2 Development Framework
CTS2 Development FrameworkCTS2 Development Framework
CTS2 Development Framework
 
State of JTS 2017
State of JTS 2017State of JTS 2017
State of JTS 2017
 

Recently uploaded

UI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
UI5con 2024 - Boost Your Development Experience with UI5 Tooling ExtensionsUI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
UI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
Peter Muessig
 
WWDC 2024 Keynote Review: For CocoaCoders Austin
WWDC 2024 Keynote Review: For CocoaCoders AustinWWDC 2024 Keynote Review: For CocoaCoders Austin
WWDC 2024 Keynote Review: For CocoaCoders Austin
Patrick Weigel
 
Lecture 2 - software testing SE 412.pptx
Lecture 2 - software testing SE 412.pptxLecture 2 - software testing SE 412.pptx
Lecture 2 - software testing SE 412.pptx
TaghreedAltamimi
 
Enums On Steroids - let's look at sealed classes !
Enums On Steroids - let's look at sealed classes !Enums On Steroids - let's look at sealed classes !
Enums On Steroids - let's look at sealed classes !
Marcin Chrost
 
socradar-q1-2024-aviation-industry-report.pdf
socradar-q1-2024-aviation-industry-report.pdfsocradar-q1-2024-aviation-industry-report.pdf
socradar-q1-2024-aviation-industry-report.pdf
SOCRadar
 
Mobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona InfotechMobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona Infotech
Drona Infotech
 
Artificia Intellicence and XPath Extension Functions
Artificia Intellicence and XPath Extension FunctionsArtificia Intellicence and XPath Extension Functions
Artificia Intellicence and XPath Extension Functions
Octavian Nadolu
 
Energy consumption of Database Management - Florina Jonuzi
Energy consumption of Database Management - Florina JonuziEnergy consumption of Database Management - Florina Jonuzi
Energy consumption of Database Management - Florina Jonuzi
Green Software Development
 
J-Spring 2024 - Going serverless with Quarkus, GraalVM native images and AWS ...
J-Spring 2024 - Going serverless with Quarkus, GraalVM native images and AWS ...J-Spring 2024 - Going serverless with Quarkus, GraalVM native images and AWS ...
J-Spring 2024 - Going serverless with Quarkus, GraalVM native images and AWS ...
Bert Jan Schrijver
 
一比一原版(USF毕业证)旧金山大学毕业证如何办理
一比一原版(USF毕业证)旧金山大学毕业证如何办理一比一原版(USF毕业证)旧金山大学毕业证如何办理
一比一原版(USF毕业证)旧金山大学毕业证如何办理
dakas1
 
Using Xen Hypervisor for Functional Safety
Using Xen Hypervisor for Functional SafetyUsing Xen Hypervisor for Functional Safety
Using Xen Hypervisor for Functional Safety
Ayan Halder
 
What next after learning python programming basics
What next after learning python programming basicsWhat next after learning python programming basics
What next after learning python programming basics
Rakesh Kumar R
 
在线购买加拿大英属哥伦比亚大学毕业证本科学位证书原版一模一样
在线购买加拿大英属哥伦比亚大学毕业证本科学位证书原版一模一样在线购买加拿大英属哥伦比亚大学毕业证本科学位证书原版一模一样
在线购买加拿大英属哥伦比亚大学毕业证本科学位证书原版一模一样
mz5nrf0n
 
GreenCode-A-VSCode-Plugin--Dario-Jurisic
GreenCode-A-VSCode-Plugin--Dario-JurisicGreenCode-A-VSCode-Plugin--Dario-Jurisic
GreenCode-A-VSCode-Plugin--Dario-Jurisic
Green Software Development
 
Top Benefits of Using Salesforce Healthcare CRM for Patient Management.pdf
Top Benefits of Using Salesforce Healthcare CRM for Patient Management.pdfTop Benefits of Using Salesforce Healthcare CRM for Patient Management.pdf
Top Benefits of Using Salesforce Healthcare CRM for Patient Management.pdf
VALiNTRY360
 
Modelling Up - DDDEurope 2024 - Amsterdam
Modelling Up - DDDEurope 2024 - AmsterdamModelling Up - DDDEurope 2024 - Amsterdam
Modelling Up - DDDEurope 2024 - Amsterdam
Alberto Brandolini
 
316895207-SAP-Oil-and-Gas-Downstream-Training.pptx
316895207-SAP-Oil-and-Gas-Downstream-Training.pptx316895207-SAP-Oil-and-Gas-Downstream-Training.pptx
316895207-SAP-Oil-and-Gas-Downstream-Training.pptx
ssuserad3af4
 
Measures in SQL (SIGMOD 2024, Santiago, Chile)
Measures in SQL (SIGMOD 2024, Santiago, Chile)Measures in SQL (SIGMOD 2024, Santiago, Chile)
Measures in SQL (SIGMOD 2024, Santiago, Chile)
Julian Hyde
 
原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样
原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样
原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样
mz5nrf0n
 
Oracle Database 19c New Features for DBAs and Developers.pptx
Oracle Database 19c New Features for DBAs and Developers.pptxOracle Database 19c New Features for DBAs and Developers.pptx
Oracle Database 19c New Features for DBAs and Developers.pptx
Remote DBA Services
 

Recently uploaded (20)

UI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
UI5con 2024 - Boost Your Development Experience with UI5 Tooling ExtensionsUI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
UI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
 
WWDC 2024 Keynote Review: For CocoaCoders Austin
WWDC 2024 Keynote Review: For CocoaCoders AustinWWDC 2024 Keynote Review: For CocoaCoders Austin
WWDC 2024 Keynote Review: For CocoaCoders Austin
 
Lecture 2 - software testing SE 412.pptx
Lecture 2 - software testing SE 412.pptxLecture 2 - software testing SE 412.pptx
Lecture 2 - software testing SE 412.pptx
 
Enums On Steroids - let's look at sealed classes !
Enums On Steroids - let's look at sealed classes !Enums On Steroids - let's look at sealed classes !
Enums On Steroids - let's look at sealed classes !
 
socradar-q1-2024-aviation-industry-report.pdf
socradar-q1-2024-aviation-industry-report.pdfsocradar-q1-2024-aviation-industry-report.pdf
socradar-q1-2024-aviation-industry-report.pdf
 
Mobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona InfotechMobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona Infotech
 
Artificia Intellicence and XPath Extension Functions
Artificia Intellicence and XPath Extension FunctionsArtificia Intellicence and XPath Extension Functions
Artificia Intellicence and XPath Extension Functions
 
Energy consumption of Database Management - Florina Jonuzi
Energy consumption of Database Management - Florina JonuziEnergy consumption of Database Management - Florina Jonuzi
Energy consumption of Database Management - Florina Jonuzi
 
J-Spring 2024 - Going serverless with Quarkus, GraalVM native images and AWS ...
J-Spring 2024 - Going serverless with Quarkus, GraalVM native images and AWS ...J-Spring 2024 - Going serverless with Quarkus, GraalVM native images and AWS ...
J-Spring 2024 - Going serverless with Quarkus, GraalVM native images and AWS ...
 
一比一原版(USF毕业证)旧金山大学毕业证如何办理
一比一原版(USF毕业证)旧金山大学毕业证如何办理一比一原版(USF毕业证)旧金山大学毕业证如何办理
一比一原版(USF毕业证)旧金山大学毕业证如何办理
 
Using Xen Hypervisor for Functional Safety
Using Xen Hypervisor for Functional SafetyUsing Xen Hypervisor for Functional Safety
Using Xen Hypervisor for Functional Safety
 
What next after learning python programming basics
What next after learning python programming basicsWhat next after learning python programming basics
What next after learning python programming basics
 
在线购买加拿大英属哥伦比亚大学毕业证本科学位证书原版一模一样
在线购买加拿大英属哥伦比亚大学毕业证本科学位证书原版一模一样在线购买加拿大英属哥伦比亚大学毕业证本科学位证书原版一模一样
在线购买加拿大英属哥伦比亚大学毕业证本科学位证书原版一模一样
 
GreenCode-A-VSCode-Plugin--Dario-Jurisic
GreenCode-A-VSCode-Plugin--Dario-JurisicGreenCode-A-VSCode-Plugin--Dario-Jurisic
GreenCode-A-VSCode-Plugin--Dario-Jurisic
 
Top Benefits of Using Salesforce Healthcare CRM for Patient Management.pdf
Top Benefits of Using Salesforce Healthcare CRM for Patient Management.pdfTop Benefits of Using Salesforce Healthcare CRM for Patient Management.pdf
Top Benefits of Using Salesforce Healthcare CRM for Patient Management.pdf
 
Modelling Up - DDDEurope 2024 - Amsterdam
Modelling Up - DDDEurope 2024 - AmsterdamModelling Up - DDDEurope 2024 - Amsterdam
Modelling Up - DDDEurope 2024 - Amsterdam
 
316895207-SAP-Oil-and-Gas-Downstream-Training.pptx
316895207-SAP-Oil-and-Gas-Downstream-Training.pptx316895207-SAP-Oil-and-Gas-Downstream-Training.pptx
316895207-SAP-Oil-and-Gas-Downstream-Training.pptx
 
Measures in SQL (SIGMOD 2024, Santiago, Chile)
Measures in SQL (SIGMOD 2024, Santiago, Chile)Measures in SQL (SIGMOD 2024, Santiago, Chile)
Measures in SQL (SIGMOD 2024, Santiago, Chile)
 
原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样
原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样
原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样
 
Oracle Database 19c New Features for DBAs and Developers.pptx
Oracle Database 19c New Features for DBAs and Developers.pptxOracle Database 19c New Features for DBAs and Developers.pptx
Oracle Database 19c New Features for DBAs and Developers.pptx
 

GEF - Past, Present, and Future

  • 1. Past, Present & Future Alexander Nyßen itemis AG
  • 3. It all began... ... at IBM, of course (etools). Image: winnond / FreeDigitalPhotos.net
  • 5. Draw2d & GEF (MVC) • Initial contribution of Draw2d & GEF (MVC) by IBM in 2002. GEF (MVC) - an interactive model-view-controller framework, which fosters the implementation of SWT- based tree editors and Draw2d-based graphical editors (and views) for the Eclipse UI Workbench. Draw2d - 2D rendering framework; lightweight extension to SWT. May be used stand-alone or as visualization technology for GEF (MVC).
  • 6. Draw2d & GEF (MVC)
  • 7. GEF 3.0 (2004) • Most of the features that make up GEF where introduced: • Rulers & Guides, Grid • Snap-to-Geometry, Centered Resize, Match Size , Constraint Move and Resize, Cloning, Panning • PaletteView, Flyout Palette, Palette Stacks • Shortest Path Connection Routing • Since then, the APIs of Draw2d and GEF (MVC) have stayed backwards compatible.
  • 8. But that's not all ... Image: renjith krishnan / FreeDigitalPhotos.net
  • 9. Zest • Initial contribution of Zest by University of Victoria and IBM Centre for Advanced Studies as part of Mylyn in 2005. • Joined in on GEF as third component with the 3.4 release in 2007. Zest - a visualization toolkit based on SWT and Draw2d to support the implementation of views with automatic or semi-automatic layout for the Eclipse Workbench UI.
  • 10. Zest
  • 11. GEF 3.4 / Zest 1.0 (2008) • Modularization into two components: • Draw2d • GEF (MVC) • Integration of Zest as third component. • GEF releng moved to common modeling build tools. • Redesigned UI for Palette (GEF)
  • 12. GEF 3.5 / Zest 1.1 (2009) • Support for SWT line style attributes (Draw2d) • Advanced Graphics support (Draw2d) • Curved Connections (Zest) • Nested content provider (Zest)
  • 13. GEF 3.6 / Zest 1.2 (2010) • Improved clipping via IClippingStrategy (Draw2d) • Scrollable Feedback support (GEF)
  • 14. GEF 3.7 / Zest 1.3 (2011) • Refactoring of Draw2d geometry classes (inconsistencies) • Refactoring of FlowLayout and ToolbarLayout (introduced OrderedLayout) • Refactoring of LayoutEditPolicies • Constraint Size-On-Drop Creation • Additional Marquee Selection strategies • Refactoring of UndoablePropertySheetPage (undo/redo support while editor is inactive; opened for subclassing)
  • 16. GEF - Facts & Figures • 10 committers (5 currently active, 2 new in 2012) • Alex Boyko • Anthony Hunter (Project Lead) • Alexander Nyßen • Cherie Revells • Fabian Steeg • 3 Git repositories (gef, gef4, zest) • 4 Hudson jobs (gef-nightly-tycho, gef4-nightly-tycho, gef-zest-nightly, gef-zest-integration) • Ian Bull • Marc Gobeil • Nick Boldt • Stephan Schwiebert • Zoltan Ujhelyi
  • 17. GEF 3.8 / Zest 1.4 (2012) • Migration of source code repository from CVS to Git • Migration of release engineering infrastructure from common modeling build to Tycho/Hudson: • gef-nightly-tycho build on hudson.eclipse.org • nightly builds as well as weekly integration builds are now publicly available • Bug fixes, clean-ups, no major new-and-noteworthy features
  • 18. GEF 3.8 / Zest 1.4 • Currently we have around ~400 open bugs/CRs. • Our quality of processing is improving... • A lot of issues will not be resolvable without breaking API. Metric calculated according to http://bugzillametrics.sourceforge.net/Process_Quality_Eclipse.pdf • How long does it take to fix a new CR? • How often has a fixed CR to be reopened? • How friction-less is the processing of CRs? 0" 0,5" 1" 1,5" 2" 2,5" 3" 3,5" 2005" 2006" 2007" 2008" 2009" 2010" 2011" 2012*" D.#Quality#of#Processing#the#CRs# GEF" Pla3orm"
  • 19. Zest 2 (since 2010) • A provisional Zest 2 component was initiated in 2010, to develop the next generation Zest API. • Development takes place in parallel to maintenance of Zest 1.x in its own Git repository. • API is regarded to be provisional up to the final graduation. • Results are not provided as part of GEF 3.x / Zest 1.x but published via Eclipse Marketplace.
  • 20. Zest 2 - New Features • Dot 4 Zest • Cloudio
  • 21. GEF4 (since 2011) • GEF4 was initiated - according to Zest 2 - to develop the next generation API for Draw2d and GEF (MVC). • Development is to take place in parallel to maintenance of Draw2d / GEF (MVC) 3.x in its own repository. • Results are not provided provided as part of GEF 3.x / Zest 1.x but on own update-sites. • Plan: • Create new double-precision Geometry API before 3.8. • Migrate the Draw2d and GEF (MVC) 3.8 code base afterwards.
  • 22. GEF4 Geometry* • No low and high precision, just a single double-precision API (with built-in imprecision for comparisons). • Different geometric abstractions for different purposes: • Euclidean (Vector, Straight) • Projective+ (Vector3D+, Straight3D+) • Planar+ (IGeometry+, ICurve, IShape, IPolyCurve, IPolyShape) +) If you have a good idea how to alternatively name these abstractions, please let me know...*) CQ 6363 incorporated
  • 23. GEF4 Planar Geometry* *) CQ 6363 incorporated
  • 24. GEF4 Geometry - Examples* *) CQ 6363 incorporated
  • 26. GEF4 + Zest 2 = GEF4 Unification of both approaches after Juno!
  • 27. GEF4 - A Unified Approach • A unified approach with a shared code base and a common namespace (org.eclipse.gef4) for all plug-ins. • Advantages: • Clear distinction between GEF proper as the production component and GEF4 as the provisional one • Chance to not only refactor GEF components but the componentization itself, which is only "historically" justified.
  • 28. SomeTopics for GEF4 • Re-thinking current componentization • Support for the E4 application model • Support for rotation and other transformations • Support for B-Spline-connections • Better integrability of native SWT widgets • Multi-touch gestures support • Revision of the command framework • Revision of connection handling (clipping container) • Various renamings and restructurings on the detail level...
  • 29. Just one more thing... • It's an often requested feature to use GEF in the web. • This is out of scope for the GEF project itself, while GEF4 might do what is possible to better enable it. • Ports based on GEF 3.x / Zest 1.x: • RAP Incubator - GEF-Port • Architexa: http://www.codemaps.org/e/Eclipse_GEF • GEFGWT (GWT): http://gefgwt.org/ • There is an active discussion on gef-dev mailing list. Participate!