47
1 GMF (Graphical Modeling Framework) Urs Frei

GMF (Graphical Modeling Framework)

  • Upload
    boyd

  • View
    37

  • Download
    0

Embed Size (px)

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

Citation preview

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