Präsentation herunterladen
Die Präsentation wird geladen. Bitte warten
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
Ähnliche Präsentationen
© 2024 SlidePlayer.org Inc.
All rights reserved.