Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

GMF (Graphical Modeling Framework)

Ähnliche Präsentationen


Präsentation zum Thema: "GMF (Graphical Modeling Framework)"—  Präsentation transkript:

1 GMF (Graphical Modeling Framework)
Urs Frei

2 Inhalt GMF Beispiel Shape Editor
Standardfunktionalitäten des GMF Editor Theorie GMF Draw2d GEF Über den Tellerrand blickend GEF3d Zest

3 Ziel: So einfach ist das!!!
Vortrag soll beim selbständigen Einstieg helfen Brauche eine graphische Visualisierung Kein Problem Es geht „alles“ Aller Anfang ist schwer

4 GMF am Beispiel eines Shape-Editors
Anforderungen: Rechteck zeichnen Ellipse zeichnen Rechtecke und Ellipsen haben Namen Elemente mit Linien verbinden

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

6 GEF (Graphical Editor Framework)
GMF Übersicht GMF GEF (Graphical Editor Framework) Draw2d EMF Eclipse

7 GMF Dashboard EMF-Teil (Michael Laurent)
- Springt von hier aus in die jeweiligen Files EMF-Teil (Michael Laurent)

8 Der EMF Editor (RCP) Der Shape-Editor als EMF Editor RCP Konfiguration

9 EMF Editor generieren Im Gegensatz zu Laurent Michael generieren wir nicht nur das Modell sondern alles Drei Plugins Erstes kennen wir Weitere werden wir später betrachten

10 Launch EMF Editor 1 2 3 4 Was haben wir jetzt?
Was können wir damit machen?

11 Shape Editor mit EMF erstellen
Demo -File erzeugen -Editor verwenden Elemente erzeugen zusammenhängen Für diese Anwendung nicht sehr komfortabel!!!

12 EMF was findet man wo? Modell Labelprovider Editor Projekt Wizard

13 Wir wollen mehr  Graphischer Editor
- Visualisierung der Elemente

14 Graphische Elemente Definieren
- Resultat ist ein „XML“ File

15 Editor Toolbar definieren 1/2
Zum erzeugen der Elemente

16 Editor Toolbar definieren 2/2

17 Mapping definieren 1/4 - Visualisierung mit dem Modell verbinden

18 Mapping definieren 2/4

19 Mapping definieren 3/4

20 Mapping definieren 4/4

21 GMF gmfgen

22 Neues Plugin mit GMF Code
Enthält alle GMF Informationen (GEF, draw2d)

23 GMF Launch konfigurieren
1 2 4 3

24 Shape Editor mit GMF erstellen

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

26 Was kann der Editor standardmässig? (Properties)

27 Was kann der Editor standardmässig? (Preference)

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

29 Ellipse anpassen

30 Symbolleiste anpassen

31 Falscher Shape wird gezeichnet: Wo ändern?

32 GMF: etwas genauer Besteht aus: GEF Draw2D EMF  kennen wir

33 Draw2d: Übersicht Lightweight Toolkit
Empfängt SWT Event und transformiert sie Paint und Layout Events über UpdateManager „Alles“ ist Figure Bsp. Label usw.

34 Draw2d: Aufgaben Painting  Layout  Hit Testing Connection Routing 
Koordinaten-Systems

35 Draw2d: Painting, Layout
Firgure#paint()  Start des Zeichnens mit div. Optimierungen (Figure#paintFigure() Figure#paintChildrenArea() Figure#paintChildren() Figure#paintBorder()) Layout Änderung wir bis Parent propagiert Späterer Update berechnet „ungültige“ Figuren neu. Figure 5 je nach dem ob Figur 2 sich geändert hat

36 Draw2d: Z-Order, Clipping

37 Draw2d: Connections Bsp: ChopboxAnchor Decorations
ChopboxAnchor such sein Grenzpunkt via dem Mittelpunkt des Elements Decorators. Bsp. Pfeile und Label möglich  Children der Connection

38 GEF: Übersicht GEF ist der Controller
Events werden entgegen genommen  Requsts Command werden erzeugt Commands nehmen veränderungen am Modell usw. vor

39 GEF: EditPart (Controller)
Drei Bäume - EMF Modellbaum - Draw2d Visualisierungsbaum - GEF Controller-Baum

40 GEF: Editing Mausevent
Welcher EditPart ist betroffen (source EditPart) Welcher Ziel (target EditPart) ist betroffen Bsp.: Element verschieben. Source  RectangleEditPart; Target  DiagramEditPart Gibt es ein Command zu dieser Operation? Ist es ausführbar? Modell ändern.

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

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)

43 Über den Tellerrand blickend
GEF 3d Noch kein Release Mehrere Dimensionen  Inter-Diagram- Verbindungen

44 Über den Tellerrand blickend
GEF3d Erweitert GEF  Jeder GEF Editor sollte erweiterbar sein

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

46 Über den Tellerrand blickend
Zest Vorgefertigte Layoutalgos Wer Eclipse (JFace) beherrscht kann Zest

47 Referenzen Eclipse Modeling Framework EMF (Michael und Laurent) GMF-Tutorial: Eclipse Magazine Vol. 8 Vol. 6.09 Vol. 1.10 Vol. 2.10


Herunterladen ppt "GMF (Graphical Modeling Framework)"

Ähnliche Präsentationen


Google-Anzeigen