GMF (Graphical Modeling Framework)

47
1 GMF (Graphical Modeling Framework) Urs Frei

description

GMF (Graphical Modeling Framework). Urs Frei. Inhalt. GMF Beispiel Shape Editor Standardfunktionalitäten des GMF Editor Theorie GMF Draw2d GEF Über den Tellerrand blickend GEF3d Zest. Ziel:. So einfach ist das!!! Vortrag soll beim selbständigen Einstieg helfen - PowerPoint PPT Presentation

Transcript of GMF (Graphical Modeling Framework)

Page 1: GMF (Graphical Modeling Framework)

1

GMF (Graphical Modeling Framework)

Urs Frei

Page 2: GMF (Graphical Modeling Framework)

2

Inhalt

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

Draw2d GEF

Über den Tellerrand blickend GEF3d Zest

Page 3: GMF (Graphical Modeling Framework)

3

Ziel:

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

helfen Brauche eine graphische Visualisierung

Kein Problem Es geht „alles“

Page 4: GMF (Graphical Modeling Framework)

4

GMF am Beispiel eines Shape-Editors Anforderungen:

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

Page 5: GMF (Graphical Modeling Framework)

5

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

Page 6: GMF (Graphical Modeling Framework)

6

GMF Übersicht

Eclipse

GMF

EMF

GEF (Graphical Editor Framework)

Draw2d

Page 7: GMF (Graphical Modeling Framework)

7

GMF Dashboard

EMF-Teil (Michael Laurent)

Page 8: GMF (Graphical Modeling Framework)

8

Der EMF Editor (RCP)

Der Shape-Editor als EMF Editor RCP Konfiguration

Page 9: GMF (Graphical Modeling Framework)

9

EMF Editor generieren

Page 10: GMF (Graphical Modeling Framework)

10

Launch EMF Editor

1

32

4

Page 11: GMF (Graphical Modeling Framework)

11

Shape Editor mit EMF erstellen

Für diese Anwendung nicht sehr komfortabel!!!

Page 12: GMF (Graphical Modeling Framework)

12

EMF was findet man wo?

Modell

Labelprovider

EditorProjekt Wizard

Page 13: GMF (Graphical Modeling Framework)

13

Wir wollen mehr Graphischer Editor

Page 14: GMF (Graphical Modeling Framework)

14

Graphische Elemente Definieren

Page 15: GMF (Graphical Modeling Framework)

15

Editor Toolbar definieren 1/2

Page 16: GMF (Graphical Modeling Framework)

16

Editor Toolbar definieren 2/2

Page 17: GMF (Graphical Modeling Framework)

17

Mapping definieren 1/4

Page 18: GMF (Graphical Modeling Framework)

18

Mapping definieren 2/4

Page 19: GMF (Graphical Modeling Framework)

19

Mapping definieren 3/4

Page 20: GMF (Graphical Modeling Framework)

20

Mapping definieren 4/4

Page 21: GMF (Graphical Modeling Framework)

21

GMF gmfgen

Page 22: GMF (Graphical Modeling Framework)

22

Neues Plugin mit GMF Code

Enthält alle GMF Informationen (GEF, draw2d)

Page 23: GMF (Graphical Modeling Framework)

23

GMF Launch konfigurieren

1

324

Page 24: GMF (Graphical Modeling Framework)

24

Shape Editor mit GMF erstellen

Page 25: GMF (Graphical Modeling Framework)

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: GMF (Graphical Modeling Framework)

26

Was kann der Editor standardmässig? (Properties)

Page 27: GMF (Graphical Modeling Framework)

27

Was kann der Editor standardmässig? (Preference)

Page 28: GMF (Graphical Modeling Framework)

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: GMF (Graphical Modeling Framework)

29

Ellipse anpassen

Page 30: GMF (Graphical Modeling Framework)

30

Symbolleiste anpassen

Page 31: GMF (Graphical Modeling Framework)

31

Falscher Shape wird gezeichnet: Wo ändern?

Page 32: GMF (Graphical Modeling Framework)

32

GMF: etwas genauer

Besteht aus: GEF

Draw2D EMF kennen wir

Page 33: GMF (Graphical Modeling Framework)

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: GMF (Graphical Modeling Framework)

34

Draw2d: Aufgaben

Painting Layout Hit Testing Connection Routing Koordinaten-Systems

Page 35: GMF (Graphical Modeling Framework)

35

Draw2d: Painting, Layout

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

Layout

Page 36: GMF (Graphical Modeling Framework)

36

Draw2d: Z-Order, Clipping

Page 37: GMF (Graphical Modeling Framework)

37

Draw2d: Connections

Bsp: ChopboxAnchor

Decorations

Page 38: GMF (Graphical Modeling Framework)

38

GEF: Übersicht

Page 39: GMF (Graphical Modeling Framework)

39

GEF: EditPart (Controller)

Page 40: GMF (Graphical Modeling Framework)

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: GMF (Graphical Modeling Framework)

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: GMF (Graphical Modeling Framework)

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: GMF (Graphical Modeling Framework)

43

Über den Tellerrand blickend

GEF 3d Noch kein

Release Mehrere

Dimensionen Inter-Diagram-Verbindungen

Page 44: GMF (Graphical Modeling Framework)

44

Über den Tellerrand blickend GEF3d

Erweitert GEF Jeder GEF Editor sollte erweiterbar sein

Page 45: GMF (Graphical Modeling Framework)

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: GMF (Graphical Modeling Framework)

46

Über den Tellerrand blickend

Zest Vorgefertigte

Layoutalgos Wer Eclipse

(JFace)beherrscht kannZest

Page 47: GMF (Graphical Modeling Framework)

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