SlideShare a Scribd company logo
1 of 30
Download to read offline
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 conceptkzw
 
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
 
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
 
Angular2 with type script
Angular2 with type scriptAngular2 with type script
Angular2 with type scriptRavi Mone
 
Angular Ivy- An Overview
Angular Ivy- An OverviewAngular Ivy- An Overview
Angular Ivy- An OverviewJalpesh 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 frameworkCodemotion
 

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, futureitemis AG
 
State of GeoServer 2.10
State of GeoServer 2.10State of GeoServer 2.10
State of GeoServer 2.10Jody 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 GPUsMark 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 TiSoftware Guru
 
State of GeoServer
State of GeoServerState of GeoServer
State of GeoServerJody 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 2011Max Katz
 
Introduction of openGL
Introduction  of openGLIntroduction  of openGL
Introduction of openGLGary 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 丈 宮本
 
Angular 2 overview
Angular 2 overviewAngular 2 overview
Angular 2 overviewJesse Warden
 
Advanced Graphics Workshop - GFX2011
Advanced Graphics Workshop - GFX2011Advanced Graphics Workshop - GFX2011
Advanced Graphics Workshop - GFX2011Prabindh 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 2011Max 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 DevsMike James
 
State of GeoServer 2015
State of GeoServer 2015State of GeoServer 2015
State of GeoServer 2015Jody 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.0Michael Vorburger
 
CTS2 Development Framework
CTS2 Development FrameworkCTS2 Development Framework
CTS2 Development Frameworkcts2framework
 

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

Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVshikhaohhpro
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...soniya singh
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionSolGuruz
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxbodapatigopi8531
 
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️anilsa9823
 
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AISyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AIABDERRAOUF MEHENNI
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...OnePlan Solutions
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdfWave PLM
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfjoe51371421
 
Active Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdfActive Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdfCionsystems
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantAxelRicardoTrocheRiq
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfkalichargn70th171
 
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
 
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfThe Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfkalichargn70th171
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)OPEN KNOWLEDGE GmbH
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataBradBedford3
 
What is Binary Language? Computer Number Systems
What is Binary Language?  Computer Number SystemsWhat is Binary Language?  Computer Number Systems
What is Binary Language? Computer Number SystemsJheuzeDellosa
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Modelsaagamshah0812
 

Recently uploaded (20)

Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTV
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with Precision
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptx
 
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
 
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AISyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdf
 
Active Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdfActive Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdf
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service Consultant
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
 
Exploring iOS App Development: Simplifying the Process
Exploring iOS App Development: Simplifying the ProcessExploring iOS App Development: Simplifying the Process
Exploring iOS App Development: Simplifying the Process
 
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 ...
 
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfThe Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
 
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
 
What is Binary Language? Computer Number Systems
What is Binary Language?  Computer Number SystemsWhat is Binary Language?  Computer Number Systems
What is Binary Language? Computer Number Systems
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
 

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!