SlideShare a Scribd company logo
1 of 30
Download to read offline
Past, Present & Future 
Alexander Nyßen 
itemis AG 
Dienstag, 27. März 12
Past 
Dienstag, 27. März 12
It all began... 
Image: winnond / FreeDigitalPhotos.net 
... at IBM, of course (etools). 
Dienstag, 27. März 12
It‘s Bi!hday Time! 
Dienstag, 27. März 12
Draw2d & GEF (MVC) 
• Initial contribution of Draw2d & GEF (MVC) by IBM in 2002. 
Draw2d - 2D rendering framework; lightweight 
extension to SWT. May be used stand-alone or as 
visualization technology for GEF (MVC). 
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. 
Dienstag, 27. März 12
Draw2d & GEF (MVC) 
Dienstag, 27. März 12
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 
• Palette View, Flyout Palette, Palette Stacks 
• Shortest Path Connection Routing 
• Since then, the APIs of Draw2d and GEF (MVC) have 
stayed backwards compatible. 
Dienstag, 27. März 12
But that's not all ... 
Image: renjith krishnan / FreeDigitalPhotos.net 
Dienstag, 27. März 12
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. 
Dienstag, 27. März 12
Zest 
Dienstag, 27. März 12
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) 
Dienstag, 27. März 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) 
Dienstag, 27. März 12
GEF 3.6 / Zest 1.2 (2010) 
• Improved clipping via IClippingStrategy (Draw2d) 
• Scrollable Feedback support (GEF) 
Dienstag, 27. März 12
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) 
Dienstag, 27. März 12
Present 
Dienstag, 27. März 12
GEF - Facts & Figures 
• 10 committers (5 currently active, 2 new in 2012) 
• Alex Boyko 
• Ian Bull 
• Anthony Hunter (Project Lead) 
• Marc Gobeil 
• Alexander Nyßen 
• Nick Boldt 
• Cherie Revells 
• Stephan Schwiebert 
• Fabian Steeg 
• Zoltan Ujhelyi 
• 3 Git repositories (gef, gef4, zest) 
• 4 Hudson jobs (gef-nightly-tycho, gef4-nightly-tycho, gef-zest-nightly, gef-zest-integration) 
Dienstag, 27. März 12
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 
Dienstag, 27. März 12
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. 
D.#Quality#of#Processing#the#CRs# 
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? 
3,5" 
3" 
2,5" 
2" 
1,5" 
1" 
0,5" 
0" 
2005" 2006" 2007" 2008" 2009" 2010" 2011" 2012*" 
GEF" 
Pla3orm" 
Dienstag, 27. März 12
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. 
Dienstag, 27. März 12
Zest 2 - New Features 
• Dot 4 Zest 
• Cloudio 
Dienstag, 27. März 12
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. 
Dienstag, 27. März 12
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, *) CQ 6363 incorporated please let me know... 
Dienstag, 27. März 12
GEF4 Planar Geometry* 
*) CQ 6363 incorporated 
Dienstag, 27. März 12
GEF4 Geometry - Examples* 
*) CQ 6363 incorporated 
Dienstag, 27. März 12
Future 
Dienstag, 27. März 12
GEF4 + Zest 2 = GEF4 
Unification of both approaches after Juno! 
Dienstag, 27. März 12
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. 
Dienstag, 27. März 12
Some Topics 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... 
Dienstag, 27. März 12
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! 
Dienstag, 27. März 12
Thank You! Questions? 
Dienstag, 27. März 12

More Related Content

Viewers also liked

Usability und agile Softwareentwicklung
Usability und agile SoftwareentwicklungUsability und agile Softwareentwicklung
Usability und agile Softwareentwicklungitemis AG
 
itemis Unternehmenspräsentation
itemis Unternehmenspräsentationitemis Unternehmenspräsentation
itemis Unternehmenspräsentationitemis AG
 
Yakindu Statechart - Domain specific statecharts
Yakindu Statechart - Domain specific statechartsYakindu Statechart - Domain specific statecharts
Yakindu Statechart - Domain specific statechartsitemis AG
 
Model-based Automotive Software Development
Model-based Automotive Software DevelopmentModel-based Automotive Software Development
Model-based Automotive Software Developmentitemis AG
 
Personas als Methode des Usability Engineerings
Personas als Methode des Usability EngineeringsPersonas als Methode des Usability Engineerings
Personas als Methode des Usability Engineeringsitemis AG
 
Migration einer Oracle Forms Anwendung - Rhenus Freight Network GmbH
Migration einer Oracle Forms Anwendung - Rhenus Freight Network GmbHMigration einer Oracle Forms Anwendung - Rhenus Freight Network GmbH
Migration einer Oracle Forms Anwendung - Rhenus Freight Network GmbHitemis AG
 
Entwicklung in Spielen als Innovationstreiber für Usability
Entwicklung in Spielen als Innovationstreiber für UsabilityEntwicklung in Spielen als Innovationstreiber für Usability
Entwicklung in Spielen als Innovationstreiber für Usabilityitemis AG
 
Warum macht Usability Engineering Sinn? Was kann ich tun?
Warum macht Usability Engineering Sinn? Was kann ich tun?Warum macht Usability Engineering Sinn? Was kann ich tun?
Warum macht Usability Engineering Sinn? Was kann ich tun?itemis AG
 
Gemeinsam kreativ für bessere Software - Vortragsreihe Dortmund
Gemeinsam kreativ für bessere Software - Vortragsreihe DortmundGemeinsam kreativ für bessere Software - Vortragsreihe Dortmund
Gemeinsam kreativ für bessere Software - Vortragsreihe Dortmunditemis AG
 

Viewers also liked (9)

Usability und agile Softwareentwicklung
Usability und agile SoftwareentwicklungUsability und agile Softwareentwicklung
Usability und agile Softwareentwicklung
 
itemis Unternehmenspräsentation
itemis Unternehmenspräsentationitemis Unternehmenspräsentation
itemis Unternehmenspräsentation
 
Yakindu Statechart - Domain specific statecharts
Yakindu Statechart - Domain specific statechartsYakindu Statechart - Domain specific statecharts
Yakindu Statechart - Domain specific statecharts
 
Model-based Automotive Software Development
Model-based Automotive Software DevelopmentModel-based Automotive Software Development
Model-based Automotive Software Development
 
Personas als Methode des Usability Engineerings
Personas als Methode des Usability EngineeringsPersonas als Methode des Usability Engineerings
Personas als Methode des Usability Engineerings
 
Migration einer Oracle Forms Anwendung - Rhenus Freight Network GmbH
Migration einer Oracle Forms Anwendung - Rhenus Freight Network GmbHMigration einer Oracle Forms Anwendung - Rhenus Freight Network GmbH
Migration einer Oracle Forms Anwendung - Rhenus Freight Network GmbH
 
Entwicklung in Spielen als Innovationstreiber für Usability
Entwicklung in Spielen als Innovationstreiber für UsabilityEntwicklung in Spielen als Innovationstreiber für Usability
Entwicklung in Spielen als Innovationstreiber für Usability
 
Warum macht Usability Engineering Sinn? Was kann ich tun?
Warum macht Usability Engineering Sinn? Was kann ich tun?Warum macht Usability Engineering Sinn? Was kann ich tun?
Warum macht Usability Engineering Sinn? Was kann ich tun?
 
Gemeinsam kreativ für bessere Software - Vortragsreihe Dortmund
Gemeinsam kreativ für bessere Software - Vortragsreihe DortmundGemeinsam kreativ für bessere Software - Vortragsreihe Dortmund
Gemeinsam kreativ für bessere Software - Vortragsreihe Dortmund
 

Similar to GEF Past, present, future

The Next Generation Eclipse Graphical Editing Framework
The Next Generation Eclipse Graphical Editing FrameworkThe Next Generation Eclipse Graphical Editing Framework
The Next Generation Eclipse Graphical Editing FrameworkAlexander Nyßen
 
State of GeoServer 2.10
State of GeoServer 2.10State of GeoServer 2.10
State of GeoServer 2.10Jody Garnett
 
What's new with tooling for Spring, Grails, and the Cloud
What's new with tooling for Spring, Grails, and the CloudWhat's new with tooling for Spring, Grails, and the Cloud
What's new with tooling for Spring, Grails, and the Cloudmartinlippert
 
State of GeoServer - FOSS4G 2016
State of GeoServer - FOSS4G 2016State of GeoServer - FOSS4G 2016
State of GeoServer - FOSS4G 2016GeoSolutions
 
State of GeoServer
State of GeoServerState of GeoServer
State of GeoServerJody Garnett
 
Spring Tooling Update - New & Noteworty (at SpringOne 2011)
Spring Tooling Update - New & Noteworty (at SpringOne 2011)Spring Tooling Update - New & Noteworty (at SpringOne 2011)
Spring Tooling Update - New & Noteworty (at SpringOne 2011)martinlippert
 
DSDP Device Debugging Project Update - Eclipse Con 2009
DSDP Device Debugging Project Update - Eclipse Con 2009DSDP Device Debugging Project Update - Eclipse Con 2009
DSDP Device Debugging Project Update - Eclipse Con 2009PawelP
 
Ultime Novità di Prodotto Neo4j
Ultime Novità di Prodotto Neo4j Ultime Novità di Prodotto Neo4j
Ultime Novità di Prodotto Neo4j Neo4j
 
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
 
GEF 5.0.0 - From a User's Perspective
GEF 5.0.0 - From a User's PerspectiveGEF 5.0.0 - From a User's Perspective
GEF 5.0.0 - From a User's PerspectiveAlexander Nyßen
 
State of GeoServer 2015
State of GeoServer 2015State of GeoServer 2015
State of GeoServer 2015Jody Garnett
 
Drupal point of vue
Drupal point of vueDrupal point of vue
Drupal point of vueDavid Ličen
 
State of GeoServer 2.12
State of GeoServer 2.12State of GeoServer 2.12
State of GeoServer 2.12GeoSolutions
 
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 丈 宮本
 
Introduction to TypeScript
Introduction to TypeScriptIntroduction to TypeScript
Introduction to TypeScriptBob German
 
A Journey through the JDKs (Java 9 to Java 11)
A Journey through the JDKs (Java 9 to Java 11)A Journey through the JDKs (Java 9 to Java 11)
A Journey through the JDKs (Java 9 to Java 11)Markus Günther
 

Similar to GEF Past, present, future (20)

GEF(4) Dot Oh Dot Oh
GEF(4) Dot Oh Dot OhGEF(4) Dot Oh Dot Oh
GEF(4) Dot Oh Dot Oh
 
The Next Generation Eclipse Graphical Editing Framework
The Next Generation Eclipse Graphical Editing FrameworkThe Next Generation Eclipse Graphical Editing Framework
The Next Generation Eclipse Graphical Editing Framework
 
State of GeoServer 2.10
State of GeoServer 2.10State of GeoServer 2.10
State of GeoServer 2.10
 
What's new with tooling for Spring, Grails, and the Cloud
What's new with tooling for Spring, Grails, and the CloudWhat's new with tooling for Spring, Grails, and the Cloud
What's new with tooling for Spring, Grails, and the Cloud
 
GEF4 - Sightseeing Mars
GEF4 - Sightseeing MarsGEF4 - Sightseeing Mars
GEF4 - Sightseeing Mars
 
State of GeoServer - FOSS4G 2016
State of GeoServer - FOSS4G 2016State of GeoServer - FOSS4G 2016
State of GeoServer - FOSS4G 2016
 
State of GeoServer
State of GeoServerState of GeoServer
State of GeoServer
 
Spring Tooling Update - New & Noteworty (at SpringOne 2011)
Spring Tooling Update - New & Noteworty (at SpringOne 2011)Spring Tooling Update - New & Noteworty (at SpringOne 2011)
Spring Tooling Update - New & Noteworty (at SpringOne 2011)
 
DSDP Device Debugging Project Update - Eclipse Con 2009
DSDP Device Debugging Project Update - Eclipse Con 2009DSDP Device Debugging Project Update - Eclipse Con 2009
DSDP Device Debugging Project Update - Eclipse Con 2009
 
Ultime Novità di Prodotto Neo4j
Ultime Novità di Prodotto Neo4j Ultime Novità di Prodotto Neo4j
Ultime Novità di Prodotto Neo4j
 
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
 
State of JTS 2018
State of JTS 2018State of JTS 2018
State of JTS 2018
 
GEF 5.0.0 - From a User's Perspective
GEF 5.0.0 - From a User's PerspectiveGEF 5.0.0 - From a User's Perspective
GEF 5.0.0 - From a User's Perspective
 
State of GeoServer 2015
State of GeoServer 2015State of GeoServer 2015
State of GeoServer 2015
 
Drupal point of vue
Drupal point of vueDrupal point of vue
Drupal point of vue
 
Yoav Kutner Dutchento
Yoav Kutner DutchentoYoav Kutner Dutchento
Yoav Kutner Dutchento
 
State of GeoServer 2.12
State of GeoServer 2.12State of GeoServer 2.12
State of GeoServer 2.12
 
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
 
Introduction to TypeScript
Introduction to TypeScriptIntroduction to TypeScript
Introduction to TypeScript
 
A Journey through the JDKs (Java 9 to Java 11)
A Journey through the JDKs (Java 9 to Java 11)A Journey through the JDKs (Java 9 to Java 11)
A Journey through the JDKs (Java 9 to Java 11)
 

More from itemis AG

YAKINDU Statechart Tools Training (look-inside)
YAKINDU Statechart Tools Training (look-inside)YAKINDU Statechart Tools Training (look-inside)
YAKINDU Statechart Tools Training (look-inside)itemis AG
 
Zukunftsfähige Softwarearchitekturen
Zukunftsfähige SoftwarearchitekturenZukunftsfähige Softwarearchitekturen
Zukunftsfähige Softwarearchitekturenitemis AG
 
Modernisierung von Altanwendungen
Modernisierung von AltanwendungenModernisierung von Altanwendungen
Modernisierung von Altanwendungenitemis AG
 
YAKINDU Traceability
YAKINDU TraceabilityYAKINDU Traceability
YAKINDU Traceabilityitemis AG
 
Modellbasierte Migration
Modellbasierte MigrationModellbasierte Migration
Modellbasierte Migrationitemis AG
 
Von der Nutzungsanforderung zur formalen Softwarespezifikation
Von der Nutzungsanforderung zur formalen SoftwarespezifikationVon der Nutzungsanforderung zur formalen Softwarespezifikation
Von der Nutzungsanforderung zur formalen Softwarespezifikationitemis AG
 
Scrum Portfolio itemis
Scrum Portfolio itemisScrum Portfolio itemis
Scrum Portfolio itemisitemis AG
 

More from itemis AG (7)

YAKINDU Statechart Tools Training (look-inside)
YAKINDU Statechart Tools Training (look-inside)YAKINDU Statechart Tools Training (look-inside)
YAKINDU Statechart Tools Training (look-inside)
 
Zukunftsfähige Softwarearchitekturen
Zukunftsfähige SoftwarearchitekturenZukunftsfähige Softwarearchitekturen
Zukunftsfähige Softwarearchitekturen
 
Modernisierung von Altanwendungen
Modernisierung von AltanwendungenModernisierung von Altanwendungen
Modernisierung von Altanwendungen
 
YAKINDU Traceability
YAKINDU TraceabilityYAKINDU Traceability
YAKINDU Traceability
 
Modellbasierte Migration
Modellbasierte MigrationModellbasierte Migration
Modellbasierte Migration
 
Von der Nutzungsanforderung zur formalen Softwarespezifikation
Von der Nutzungsanforderung zur formalen SoftwarespezifikationVon der Nutzungsanforderung zur formalen Softwarespezifikation
Von der Nutzungsanforderung zur formalen Softwarespezifikation
 
Scrum Portfolio itemis
Scrum Portfolio itemisScrum Portfolio itemis
Scrum Portfolio itemis
 

Recently uploaded

MYjobs Presentation Django-based project
MYjobs Presentation Django-based projectMYjobs Presentation Django-based project
MYjobs Presentation Django-based projectAnoyGreter
 
SpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at RuntimeSpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at Runtimeandrehoraa
 
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...OnePlan Solutions
 
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Matt Ray
 
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...OnePlan Solutions
 
Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Hr365.us smith
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureDinusha Kumarasiri
 
VK Business Profile - provides IT solutions and Web Development
VK Business Profile - provides IT solutions and Web DevelopmentVK Business Profile - provides IT solutions and Web Development
VK Business Profile - provides IT solutions and Web Developmentvyaparkranti
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWave PLM
 
Precise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive GoalPrecise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive GoalLionel Briand
 
A healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfA healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfMarharyta Nedzelska
 
Exploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdf
Exploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdfExploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdf
Exploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdfkalichargn70th171
 
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024StefanoLambiase
 
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanySuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanyChristoph Pohl
 
Ahmed Motair CV April 2024 (Senior SW Developer)
Ahmed Motair CV April 2024 (Senior SW Developer)Ahmed Motair CV April 2024 (Senior SW Developer)
Ahmed Motair CV April 2024 (Senior SW Developer)Ahmed Mater
 
cpct NetworkING BASICS AND NETWORK TOOL.ppt
cpct NetworkING BASICS AND NETWORK TOOL.pptcpct NetworkING BASICS AND NETWORK TOOL.ppt
cpct NetworkING BASICS AND NETWORK TOOL.pptrcbcrtm
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaHanief Utama
 
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfGOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfAlina Yurenko
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Andreas Granig
 

Recently uploaded (20)

MYjobs Presentation Django-based project
MYjobs Presentation Django-based projectMYjobs Presentation Django-based project
MYjobs Presentation Django-based project
 
SpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at RuntimeSpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at Runtime
 
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
 
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
 
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
 
Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with Azure
 
VK Business Profile - provides IT solutions and Web Development
VK Business Profile - provides IT solutions and Web DevelopmentVK Business Profile - provides IT solutions and Web Development
VK Business Profile - provides IT solutions and Web Development
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need It
 
Precise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive GoalPrecise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive Goal
 
A healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfA healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdf
 
Exploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdf
Exploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdfExploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdf
Exploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdf
 
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
 
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanySuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
 
Ahmed Motair CV April 2024 (Senior SW Developer)
Ahmed Motair CV April 2024 (Senior SW Developer)Ahmed Motair CV April 2024 (Senior SW Developer)
Ahmed Motair CV April 2024 (Senior SW Developer)
 
cpct NetworkING BASICS AND NETWORK TOOL.ppt
cpct NetworkING BASICS AND NETWORK TOOL.pptcpct NetworkING BASICS AND NETWORK TOOL.ppt
cpct NetworkING BASICS AND NETWORK TOOL.ppt
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief Utama
 
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfGOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
 
2.pdf Ejercicios de programación competitiva
2.pdf Ejercicios de programación competitiva2.pdf Ejercicios de programación competitiva
2.pdf Ejercicios de programación competitiva
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024
 

GEF Past, present, future

  • 1. Past, Present & Future Alexander Nyßen itemis AG Dienstag, 27. März 12
  • 3. It all began... Image: winnond / FreeDigitalPhotos.net ... at IBM, of course (etools). Dienstag, 27. März 12
  • 4. It‘s Bi!hday Time! Dienstag, 27. März 12
  • 5. Draw2d & GEF (MVC) • Initial contribution of Draw2d & GEF (MVC) by IBM in 2002. Draw2d - 2D rendering framework; lightweight extension to SWT. May be used stand-alone or as visualization technology for GEF (MVC). 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. Dienstag, 27. März 12
  • 6. Draw2d & GEF (MVC) Dienstag, 27. März 12
  • 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 • Palette View, Flyout Palette, Palette Stacks • Shortest Path Connection Routing • Since then, the APIs of Draw2d and GEF (MVC) have stayed backwards compatible. Dienstag, 27. März 12
  • 8. But that's not all ... Image: renjith krishnan / FreeDigitalPhotos.net Dienstag, 27. März 12
  • 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. Dienstag, 27. März 12
  • 10. Zest Dienstag, 27. März 12
  • 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) Dienstag, 27. März 12
  • 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) Dienstag, 27. März 12
  • 13. GEF 3.6 / Zest 1.2 (2010) • Improved clipping via IClippingStrategy (Draw2d) • Scrollable Feedback support (GEF) Dienstag, 27. März 12
  • 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) Dienstag, 27. März 12
  • 16. GEF - Facts & Figures • 10 committers (5 currently active, 2 new in 2012) • Alex Boyko • Ian Bull • Anthony Hunter (Project Lead) • Marc Gobeil • Alexander Nyßen • Nick Boldt • Cherie Revells • Stephan Schwiebert • Fabian Steeg • Zoltan Ujhelyi • 3 Git repositories (gef, gef4, zest) • 4 Hudson jobs (gef-nightly-tycho, gef4-nightly-tycho, gef-zest-nightly, gef-zest-integration) Dienstag, 27. März 12
  • 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 Dienstag, 27. März 12
  • 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. D.#Quality#of#Processing#the#CRs# 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? 3,5" 3" 2,5" 2" 1,5" 1" 0,5" 0" 2005" 2006" 2007" 2008" 2009" 2010" 2011" 2012*" GEF" Pla3orm" Dienstag, 27. März 12
  • 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. Dienstag, 27. März 12
  • 20. Zest 2 - New Features • Dot 4 Zest • Cloudio Dienstag, 27. März 12
  • 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. Dienstag, 27. März 12
  • 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, *) CQ 6363 incorporated please let me know... Dienstag, 27. März 12
  • 23. GEF4 Planar Geometry* *) CQ 6363 incorporated Dienstag, 27. März 12
  • 24. GEF4 Geometry - Examples* *) CQ 6363 incorporated Dienstag, 27. März 12
  • 26. GEF4 + Zest 2 = GEF4 Unification of both approaches after Juno! Dienstag, 27. März 12
  • 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. Dienstag, 27. März 12
  • 28. Some Topics 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... Dienstag, 27. März 12
  • 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! Dienstag, 27. März 12
  • 30. Thank You! Questions? Dienstag, 27. März 12