the next generation eclipse graphical editing framework

22
Alexander Nyßen, itemis AG Project Lead Image courtesy of Stefan Rimaila/ flickr The next generation Eclipse Graphical Editing Framework

Upload: alexander-nyssen

Post on 08-Apr-2017

78 views

Category:

Software


1 download

TRANSCRIPT

Page 1: The Next Generation Eclipse Graphical Editing Framework

Alexander Nyßen, itemis AGProject Lead

Image courtesy of Stefan Rimaila/ flickr

The next generation Eclipse Graphical Editing Framework

Page 2: The Next Generation Eclipse Graphical Editing Framework

GEF 3.x• Provides framework components for Eclipse-integrated

graphical editors and views

• Based on SWT as underlying rendering technology

• Initial contribution by IBM in 2002 and Chisel Group in 2007

• In pure maintenance mode, but remains on the ‚train‘

Image courtesy of Hamad Aziz/ flickr

Page 3: The Next Generation Eclipse Graphical Editing Framework

Draw2d

Page 4: The Next Generation Eclipse Graphical Editing Framework

Draw2d & GEF (MVC)

Page 5: The Next Generation Eclipse Graphical Editing Framework

Zest

Page 6: The Next Generation Eclipse Graphical Editing Framework

GEF4• Provides end-user tools and framework components for

graphical rich-client Java applications, Eclipse-integrated and standalone

• Based on JavaFX as underlying rendering technology

• Graduation release (1.0.0) with Neon

• Bugfix release (1.1.0) with Neon.1

Image courtesy of NASA

Page 7: The Next Generation Eclipse Graphical Editing Framework

The next generation has (finally) taken over…

GEF „Generations“

GEF4

GEF

GEF-Legacy

GEF

0.1.0/0.2.0 1.0.0/1.1.0

5.0.03.10.0/3.10.1 3.11.0

3.10.0/3.10.1(Mars)

4.0.0/4.1.0(Neon)

5.0.0(Oxygen)

?

[Draw2d, GEF (MVC), Zest]

[Common, Geometry, FX, MVC, Graph, Layout, Zest, DOT, Cloudio]

Project Releases

Image courtesy of zeitfaenger.at / flickr

Page 8: The Next Generation Eclipse Graphical Editing Framework

https://github.com/eclipse/gef

https://github.com/eclipse/gef-legacy

GEF@GitHub

GEF-Legacy@GitHub

GEF „Generations“

Page 9: The Next Generation Eclipse Graphical Editing Framework

Cloudio

GEF Components

Image courtesy of Michael Stern / flickr

DOT

Common Geometry FX MVCGraph Layout Zest

• GEF provides nine loosely coupled components.• Cloudio and DOT provide end-user features• The other components form two basic framework stacks:

• Common Geometry FX MVC• Graph Layout Zest

Page 10: The Next Generation Eclipse Graphical Editing Framework

Cloudio - TagCloud View

Page 11: The Next Generation Eclipse Graphical Editing Framework

DOT - Editor & Graph View

AbstractBehavior

Page 12: The Next Generation Eclipse Graphical Editing Framework

Neon

• Disclosure of preliminary API

• Validation for style, splineType, point, arrowType, shape

• Rendering of decorations, splines, and labels• Native layout integration

DOTCloudioO

xygen

• Further editing and rendering capabilities ✓

• Support for HTML-like labels and subgraphs ✓• Bundling of Graphviz executable (CQ 11140) ✗

Page 13: The Next Generation Eclipse Graphical Editing Framework

Undeployed Examples

Page 14: The Next Generation Eclipse Graphical Editing Framework

GEF - Components

UI ≃ Eclipse UI FX ≃ JavaFX

Geometry

FX.JFaceLayout

MVC.FX.UI Zest.FX

MVC.FX

FXGraph

Zest.FX.UI

DOT

Common

Cloudio.UI

FX.SWT

Zest.FX.JFace

DOT.UI

Geometry.Convert.FX Geometry.Convert.SWT

Page 15: The Next Generation Eclipse Graphical Editing Framework

DEMO - MVC Logo Example

Page 16: The Next Generation Eclipse Graphical Editing Framework

Neon

Oxygen

• Connection Decoration Clipping

• Orthogonal Router & Orthogonal Bending

• Palette Support

Common Geometry FX MVC

• Major API revision (MVC & MVC.FX) ✓• Viewport actions (scroll/zoom) ✓• Snap-To-Geometry Support ✓

Page 17: The Next Generation Eclipse Graphical Editing Framework

GEF - Components

UI ≃ Eclipse UI FX ≃ JavaFX

Geometry

FX.JFaceLayout

MVC.FX.UI Zest.FX

MVC.FX

FXGraph

Zest.FX.UI

DOT

Common

Cloudio.UI

FX.SWT

Zest.FX.JFace

DOT.UI

Geometry.Convert.FX Geometry.Convert.SWT

Page 18: The Next Generation Eclipse Graphical Editing Framework

DEMO - Zest Graph Example

Page 19: The Next Generation Eclipse Graphical Editing Framework

Neon

Oxygen

• Enhanced builder API

• Layout now Graph-based (I/O model)• JFace-API cleanups

Graph Layout Zest

• API-Cleanup ✓• Live vs. Background Layout ✗

Page 20: The Next Generation Eclipse Graphical Editing Framework

• FXCanvasEx provides workarounds for the following issues: • JDK-8143596: Forward touch gestures to FXCanvas embedded scene.

• JDK-8161282: FXCanvas does not forward horizontal mouse scroll events to the embedded scene.

• JDK-8088147: Image cursors not supported.

• JDK-8159227: KeyEvent.doit should be forwarded to KeyEvent.consumed().

• JDK-8161587: FXCanvas does not update SWT display.

• JDK-8088862: Provide possibility to traverse focus out of FX scene.

• Fixes for those requiring access to JDK-internals have been contributed to OpenJFX 9 directly.

• FXCanvasEx can now transparently be used for Java 8 and 9.

readiness

Page 21: The Next Generation Eclipse Graphical Editing Framework

https://info.itemis.com/en/gef/tutorials/

Page 22: The Next Generation Eclipse Graphical Editing Framework

Evaluate the SessionsSign in and vote at eclipseconverge.org

+1-1 0