Top Banner
1 GMF (Graphical Modeling Framework) Urs Frei
47

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

Apr 06, 2015

Download

Documents

Elfi Dorschner
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
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