GMF - Diagramm mit Defaultinhalt erzeugen createInitialModel()

toko-1234

Mitglied
Hallo zusammen,

ich möchte aus einem existierenden Diagramm, dass mit Editor A erzeugt wurde, einige Elemente in ein anderes Diagramm, welches sich mit Hilfe eines zweiten Editor B darstellen lässt, "übernehmen / exportieren".

Ich habe für beide Editoren die *gmf-Files angelegt und die Editoren generieren lassen. Bei der Suche nach der Umsetzung für den Export habe ich die Funktion xxxDiagrammEditorUtil.createInitialModel() gefunden. Zum Ausprobieren habe ich dort erst mal ohne größere Logik Elemente erzeugt und getestet, ob diese dargestellt werden. Mein Problem ist jedoch, dass diese Elemente nicht in xxx_diagramm Datei gespeichert werden, sondern nur dann gespeichert werden, wenn nach erzeugen des Editors noch Änderungen erfolgen. Dieses Verhalten ist ärgerlich, da der Editor die Diagramme nur anzeigen soll, aber keine Änderungen durchgeführt werden sollen.
Gibt es eine Möglichkeit den Inhalt vor einer weiteren Änderung zu speichern ??

Sollte der gewählte Ansatz zu kompliziert oder zu umständlich sein, wäre ich auch über alternative Vorschläge dankbar.
 

Wildcard

Top Contributor
Die Diagramm Datei selbst enthält doch nur das Notational Model, also nicht das Domain Modell selbst (zumindest ist das der Default). Wenn du die Notation nicht verändert hast, dann gibt es doch auch wirklich nichts zu speichern.
 

toko-1234

Mitglied
Das die Diagramm Datei nur das Notational Model enthält war mir bewusst. Ich dachte jedoch, dass ViewService.createDiagram() das Diagramm automatisch mit allen im Domain Model vorhandenen Elementen erzeugt, da die Elemente beim ersten automatischen Öffnen des Diagramms auch zu sehen waren.

Kann ich die Methoden der Klasse xxxViewProvider nutzen, um die entsprechenden Views zu erzeugen oder gibt es eine bessere / sinnvollere Möglichkeit ??

Danke für die Antwort

OK, dass mit dem ViewProvider ist Blödsinn, der wird schon aufgerufen, aber wie kann ich die Änderungen jetzt ins Notational Model übernehmen ??
 
Zuletzt bearbeitet:

Oben