47
1 GMF (Graphical Modeling Framework) Urs Frei

1 GMF (Graphical Modeling Framework) Urs Frei. 2 Inhalt GMF Beispiel Shape Editor Standardfunktionalitäten des GMF Editor Theorie GMF Draw2d GEF Über

Embed Size (px)

Citation preview

Page 1: 1 GMF (Graphical Modeling Framework) Urs Frei. 2 Inhalt GMF Beispiel Shape Editor Standardfunktionalitäten des GMF Editor Theorie GMF Draw2d GEF Über

1

GMF (Graphical Modeling Framework)

Urs Frei

Page 2: 1 GMF (Graphical Modeling Framework) Urs Frei. 2 Inhalt GMF Beispiel Shape Editor Standardfunktionalitäten des GMF Editor Theorie GMF Draw2d GEF Über

2

Inhalt

GMF Beispiel Shape Editor Standardfunktionalitäten des GMF Editor Theorie GMF

Draw2d GEF

Über den Tellerrand blickend GEF3d Zest

Page 3: 1 GMF (Graphical Modeling Framework) Urs Frei. 2 Inhalt GMF Beispiel Shape Editor Standardfunktionalitäten des GMF Editor Theorie GMF Draw2d GEF Über

3

Ziel:

So einfach ist das!!! Vortrag soll beim selbständigen Einstieg

helfen Brauche eine graphische Visualisierung

Kein Problem Es geht „alles“

Page 4: 1 GMF (Graphical Modeling Framework) Urs Frei. 2 Inhalt GMF Beispiel Shape Editor Standardfunktionalitäten des GMF Editor Theorie GMF Draw2d GEF Über

4

GMF am Beispiel eines Shape-Editors Anforderungen:

Rechteck zeichnen Ellipse zeichnen Rechtecke und Ellipsen haben Namen Elemente mit Linien verbinden

Page 5: 1 GMF (Graphical Modeling Framework) Urs Frei. 2 Inhalt GMF Beispiel Shape Editor Standardfunktionalitäten des GMF Editor Theorie GMF Draw2d GEF Über

5

Ausgangslage EMF (Michael & Laurent) EMF Modell für Shape Editor

Page 6: 1 GMF (Graphical Modeling Framework) Urs Frei. 2 Inhalt GMF Beispiel Shape Editor Standardfunktionalitäten des GMF Editor Theorie GMF Draw2d GEF Über

6

GMF Übersicht

Eclipse

GMF

EMF

GEF (Graphical Editor Framework)

Draw2d

Page 7: 1 GMF (Graphical Modeling Framework) Urs Frei. 2 Inhalt GMF Beispiel Shape Editor Standardfunktionalitäten des GMF Editor Theorie GMF Draw2d GEF Über

7

GMF Dashboard

EMF-Teil (Michael Laurent)

Page 8: 1 GMF (Graphical Modeling Framework) Urs Frei. 2 Inhalt GMF Beispiel Shape Editor Standardfunktionalitäten des GMF Editor Theorie GMF Draw2d GEF Über

8

Der EMF Editor (RCP)

Der Shape-Editor als EMF Editor RCP Konfiguration

Page 9: 1 GMF (Graphical Modeling Framework) Urs Frei. 2 Inhalt GMF Beispiel Shape Editor Standardfunktionalitäten des GMF Editor Theorie GMF Draw2d GEF Über

9

EMF Editor generieren

Page 10: 1 GMF (Graphical Modeling Framework) Urs Frei. 2 Inhalt GMF Beispiel Shape Editor Standardfunktionalitäten des GMF Editor Theorie GMF Draw2d GEF Über

10

Launch EMF Editor

1

32

4

Page 11: 1 GMF (Graphical Modeling Framework) Urs Frei. 2 Inhalt GMF Beispiel Shape Editor Standardfunktionalitäten des GMF Editor Theorie GMF Draw2d GEF Über

11

Shape Editor mit EMF erstellen

Für diese Anwendung nicht sehr komfortabel!!!

Page 12: 1 GMF (Graphical Modeling Framework) Urs Frei. 2 Inhalt GMF Beispiel Shape Editor Standardfunktionalitäten des GMF Editor Theorie GMF Draw2d GEF Über

12

EMF was findet man wo?

Modell

Labelprovider

EditorProjekt Wizard

Page 13: 1 GMF (Graphical Modeling Framework) Urs Frei. 2 Inhalt GMF Beispiel Shape Editor Standardfunktionalitäten des GMF Editor Theorie GMF Draw2d GEF Über

13

Wir wollen mehr Graphischer Editor

Page 14: 1 GMF (Graphical Modeling Framework) Urs Frei. 2 Inhalt GMF Beispiel Shape Editor Standardfunktionalitäten des GMF Editor Theorie GMF Draw2d GEF Über

14

Graphische Elemente Definieren

Page 15: 1 GMF (Graphical Modeling Framework) Urs Frei. 2 Inhalt GMF Beispiel Shape Editor Standardfunktionalitäten des GMF Editor Theorie GMF Draw2d GEF Über

15

Editor Toolbar definieren 1/2

Page 16: 1 GMF (Graphical Modeling Framework) Urs Frei. 2 Inhalt GMF Beispiel Shape Editor Standardfunktionalitäten des GMF Editor Theorie GMF Draw2d GEF Über

16

Editor Toolbar definieren 2/2

Page 17: 1 GMF (Graphical Modeling Framework) Urs Frei. 2 Inhalt GMF Beispiel Shape Editor Standardfunktionalitäten des GMF Editor Theorie GMF Draw2d GEF Über

17

Mapping definieren 1/4

Page 18: 1 GMF (Graphical Modeling Framework) Urs Frei. 2 Inhalt GMF Beispiel Shape Editor Standardfunktionalitäten des GMF Editor Theorie GMF Draw2d GEF Über

18

Mapping definieren 2/4

Page 19: 1 GMF (Graphical Modeling Framework) Urs Frei. 2 Inhalt GMF Beispiel Shape Editor Standardfunktionalitäten des GMF Editor Theorie GMF Draw2d GEF Über

19

Mapping definieren 3/4

Page 20: 1 GMF (Graphical Modeling Framework) Urs Frei. 2 Inhalt GMF Beispiel Shape Editor Standardfunktionalitäten des GMF Editor Theorie GMF Draw2d GEF Über

20

Mapping definieren 4/4

Page 21: 1 GMF (Graphical Modeling Framework) Urs Frei. 2 Inhalt GMF Beispiel Shape Editor Standardfunktionalitäten des GMF Editor Theorie GMF Draw2d GEF Über

21

GMF gmfgen

Page 22: 1 GMF (Graphical Modeling Framework) Urs Frei. 2 Inhalt GMF Beispiel Shape Editor Standardfunktionalitäten des GMF Editor Theorie GMF Draw2d GEF Über

22

Neues Plugin mit GMF Code

Enthält alle GMF Informationen (GEF, draw2d)

Page 23: 1 GMF (Graphical Modeling Framework) Urs Frei. 2 Inhalt GMF Beispiel Shape Editor Standardfunktionalitäten des GMF Editor Theorie GMF Draw2d GEF Über

23

GMF Launch konfigurieren

1

324

Page 24: 1 GMF (Graphical Modeling Framework) Urs Frei. 2 Inhalt GMF Beispiel Shape Editor Standardfunktionalitäten des GMF Editor Theorie GMF Draw2d GEF Über

24

Shape Editor mit GMF erstellen

Page 25: 1 GMF (Graphical Modeling Framework) Urs Frei. 2 Inhalt GMF Beispiel Shape Editor Standardfunktionalitäten des GMF Editor Theorie GMF Draw2d GEF Über

25

Was kann der Editor standardmässig? Outline Property-View (wie bei EMF) Kopieren/Einfügen über Zwischenablage

(auch in andere Programme) Drucken von Diagrammen Algorithmen zum Anordnen von Elementen

Page 26: 1 GMF (Graphical Modeling Framework) Urs Frei. 2 Inhalt GMF Beispiel Shape Editor Standardfunktionalitäten des GMF Editor Theorie GMF Draw2d GEF Über

26

Was kann der Editor standardmässig? (Properties)

Page 27: 1 GMF (Graphical Modeling Framework) Urs Frei. 2 Inhalt GMF Beispiel Shape Editor Standardfunktionalitäten des GMF Editor Theorie GMF Draw2d GEF Über

27

Was kann der Editor standardmässig? (Preference)

Page 28: 1 GMF (Graphical Modeling Framework) Urs Frei. 2 Inhalt GMF Beispiel Shape Editor Standardfunktionalitäten des GMF Editor Theorie GMF Draw2d GEF Über

28

Wo nimmt man folgende Anpassungen vor? Eine Ellipse soll eine Ellipse sein Symbolleiste: ein Bild anpassen Bsp.: falscher Shape wird gezeichnet. Wo

ändern?

Page 29: 1 GMF (Graphical Modeling Framework) Urs Frei. 2 Inhalt GMF Beispiel Shape Editor Standardfunktionalitäten des GMF Editor Theorie GMF Draw2d GEF Über

29

Ellipse anpassen

Page 30: 1 GMF (Graphical Modeling Framework) Urs Frei. 2 Inhalt GMF Beispiel Shape Editor Standardfunktionalitäten des GMF Editor Theorie GMF Draw2d GEF Über

30

Symbolleiste anpassen

Page 31: 1 GMF (Graphical Modeling Framework) Urs Frei. 2 Inhalt GMF Beispiel Shape Editor Standardfunktionalitäten des GMF Editor Theorie GMF Draw2d GEF Über

31

Falscher Shape wird gezeichnet: Wo ändern?

Page 32: 1 GMF (Graphical Modeling Framework) Urs Frei. 2 Inhalt GMF Beispiel Shape Editor Standardfunktionalitäten des GMF Editor Theorie GMF Draw2d GEF Über

32

GMF: etwas genauer

Besteht aus: GEF

Draw2D EMF kennen wir

Page 33: 1 GMF (Graphical Modeling Framework) Urs Frei. 2 Inhalt GMF Beispiel Shape Editor Standardfunktionalitäten des GMF Editor Theorie GMF Draw2d GEF Über

33

Draw2d: Übersicht

Lightweight Toolkit Empfängt SWT Event

und transformiert sie Paint und Layout

Events über UpdateManager

„Alles“ ist FigureBsp. Label usw.

Page 34: 1 GMF (Graphical Modeling Framework) Urs Frei. 2 Inhalt GMF Beispiel Shape Editor Standardfunktionalitäten des GMF Editor Theorie GMF Draw2d GEF Über

34

Draw2d: Aufgaben

Painting Layout Hit Testing Connection Routing Koordinaten-Systems

Page 35: 1 GMF (Graphical Modeling Framework) Urs Frei. 2 Inhalt GMF Beispiel Shape Editor Standardfunktionalitäten des GMF Editor Theorie GMF Draw2d GEF Über

35

Draw2d: Painting, Layout

Firgure#paint() Start des Zeichnens mit div. Optimierungen (Figure#paintFigure() Figure#paintChildrenArea() Figure#paintChildren() Figure#paintBorder())

Layout

Page 36: 1 GMF (Graphical Modeling Framework) Urs Frei. 2 Inhalt GMF Beispiel Shape Editor Standardfunktionalitäten des GMF Editor Theorie GMF Draw2d GEF Über

36

Draw2d: Z-Order, Clipping

Page 37: 1 GMF (Graphical Modeling Framework) Urs Frei. 2 Inhalt GMF Beispiel Shape Editor Standardfunktionalitäten des GMF Editor Theorie GMF Draw2d GEF Über

37

Draw2d: Connections

Bsp: ChopboxAnchor

Decorations

Page 38: 1 GMF (Graphical Modeling Framework) Urs Frei. 2 Inhalt GMF Beispiel Shape Editor Standardfunktionalitäten des GMF Editor Theorie GMF Draw2d GEF Über

38

GEF: Übersicht

Page 39: 1 GMF (Graphical Modeling Framework) Urs Frei. 2 Inhalt GMF Beispiel Shape Editor Standardfunktionalitäten des GMF Editor Theorie GMF Draw2d GEF Über

39

GEF: EditPart (Controller)

Page 40: 1 GMF (Graphical Modeling Framework) Urs Frei. 2 Inhalt GMF Beispiel Shape Editor Standardfunktionalitäten des GMF Editor Theorie GMF Draw2d GEF Über

40

GEF: Editing

1. Mausevent2. Welcher EditPart ist betroffen (source EditPart)3. Welcher Ziel (target EditPart) ist betroffen

Bsp.: Element verschieben. Source RectangleEditPart; Target DiagramEditPart

4. Gibt es ein Command zu dieser Operation? Ist es ausführbar?

5. Modell ändern.

Page 41: 1 GMF (Graphical Modeling Framework) Urs Frei. 2 Inhalt GMF Beispiel Shape Editor Standardfunktionalitäten des GMF Editor Theorie GMF Draw2d GEF Über

41

GEF: EditPolicies

Änderungen erfolgen nicht direkt über EditParts, sondern über EditPolicies

Ein EditPolicy hat eine Verantwortlichkeit Anmeldung der EditPolicies über Rollen Command führt dann Änderung

durch undo redo

Page 42: 1 GMF (Graphical Modeling Framework) Urs Frei. 2 Inhalt GMF Beispiel Shape Editor Standardfunktionalitäten des GMF Editor Theorie GMF Draw2d GEF Über

42

GMF: Und wozu braucht man noch das GMF? Vereint EMF und GEF Zwei Hauptkomponenten

Runtime Tooling Komponente für MDA Ansatz

MDA Ansatz vereinfacht Erstellung graphischer Editoren (Problem von GEF)

Page 43: 1 GMF (Graphical Modeling Framework) Urs Frei. 2 Inhalt GMF Beispiel Shape Editor Standardfunktionalitäten des GMF Editor Theorie GMF Draw2d GEF Über

43

Über den Tellerrand blickend

GEF 3d Noch kein

Release Mehrere

Dimensionen Inter-Diagram-Verbindungen

Page 44: 1 GMF (Graphical Modeling Framework) Urs Frei. 2 Inhalt GMF Beispiel Shape Editor Standardfunktionalitäten des GMF Editor Theorie GMF Draw2d GEF Über

44

Über den Tellerrand blickend GEF3d

Erweitert GEF Jeder GEF Editor sollte erweiterbar sein

Page 45: 1 GMF (Graphical Modeling Framework) Urs Frei. 2 Inhalt GMF Beispiel Shape Editor Standardfunktionalitäten des GMF Editor Theorie GMF Draw2d GEF Über

45

Über den Tellerrand blickend

Zest: Eclipse Visualisierungs- Toolkit Unterprojekt von GEF Verfolgt JFace-Ansatz (Contentprovider,

Labelprovider) Vorgefertigte Komponenten für

Graph GraphNode GraphConnection GraphContainer

Page 46: 1 GMF (Graphical Modeling Framework) Urs Frei. 2 Inhalt GMF Beispiel Shape Editor Standardfunktionalitäten des GMF Editor Theorie GMF Draw2d GEF Über

46

Über den Tellerrand blickend

Zest Vorgefertigte

Layoutalgos Wer Eclipse

(JFace)beherrscht kannZest

Page 47: 1 GMF (Graphical Modeling Framework) Urs Frei. 2 Inhalt GMF Beispiel Shape Editor Standardfunktionalitäten des GMF Editor Theorie GMF Draw2d GEF Über

47

Referenzen

Eclipse Modeling Framework EMF (Michael und Laurent) http://www.infopoint-fhs.ch/_documents/03022010/Praesentation.pdf

GMF-Tutorial: www.tm.tfh-wildau.de/vandenhouten/media/GMF-Step-By-Step.pdf

Eclipse Magazine www.eclipsemagazin.de Vol. 8 Vol. 6.09 Vol. 1.10 Vol. 2.10

www.eclipse.org/gef www.eclipse.org/gef/zest www.eclipse.org/emf www.eclipse.org/gmf www.eclipse.org/gef3d