GMF: Ecore in anderes integrieren

Status
Nicht offen für weitere Antworten.
G

Guest

Gast
Hallo zusammen,

Folgendes: Ich habe eine RCP-Anwendung mit GMF erstellt. Das ganze soll in eine anderes GMF-Projekt integriert werden. Soll heißen, daß meine Anwenung praktisch die globale Sicht darstellt. Die andere GMF-Anwenung ist dann praktisch die Detailansicht für einzelne Elemente in meiner Anwenung.
Es geht um die Zusammenführung von Daten aus verschiedenen Quellen. Meine Anwendung dient praktisch der Verwaltung einzelner DB-Schemata und deren Transformationen in andere (bisher rein graphisch, die Datenanbindung wird erst noch implementiert). Die andere Anwendung dient der Verwaltung der Bestandteile der einzelnen Schemata (Tabellen und deren Relationen usw.).
Wie bringe ich die beiden Modelle nun zusammen? Ich kann ja nicht einfach die Knoten von einem Ecore-Modell in´s andere ziehen.
 
G

Guest

Gast
Hab schon selbst ne Lösung gefunden. Über die Compare-Funktion von Eclipse kann man bequem alles rüberkopieren. Irgendwie suche ich immer stundenlang nach ner Lösung. Sobald ich dann in nem Forum poste, komm ich relativ schnell von selbst auf ne Lösung :D Irgendwie seltsam ???:L
 

Wildcard

Top Contributor
Ecore Modelle können sich gegenseitig referenzieren, verwenden, erweitern, inkludieren,...
Einfach im Ecore Editor ein Rechtsklick -> Load Resource
Für die GMF Seite könnte später Diagramm Partitioning interessant werden.
 
G

Guest

Gast
Wildcard hat gesagt.:
Ecore Modelle können sich gegenseitig referenzieren, verwenden, erweitern, inkludieren,...
Einfach im Ecore Editor ein Rechtsklick -> Load Resource
Für die GMF Seite könnte später Diagramm Partitioning interessant werden.

Danke für die Antwort. Nächstes mal werd ich´s wohl so machen. Ist wesentlich komfortabler, als über die Compare-Funktion. Allerdings stehe ich jetzt vor dem nächsten Problem. Die globale und die Detailansicht werden in derselben Datei gespeichert, obwohl ich in den .gmfgen-Dateien das eigentlich anders eingestellt habe. Wo kann ich das umstellen? Das Problem ist nämlich, dass bei den Schemata Redundanzen möglich sind. Es kann also dieselbe Detailansicht in mehreren Schemata enthalten sein. Außerdem ist es nicht möglich, von der Detailansicht zur zugehörigen globalen Ansicht zu wechseln. Eine Verlinkung zur globalen Ansicht wäre schön, sodass ich wie bei der umgekehrten Verlinkung über ein User-Event (z.B. Doppelklick auf den Hintergrund) in der Detailansicht zur zugeordneten globalen Ansicht komme.
 

Wildcard

Top Contributor
Die Create Commands bestimmen letztlich in welcher Resource ein EObject erstellt wird. Aber nur das du vorbereitet bist: GMF versteht zwar verlinkte Objekte in verschiedenen Resourcen, aber bis alles so läuft wie du es haben möchtest, wirst du ein wenig Arbeit investieren müssen.
Was du im gmfgen einstellst von wegen gleiches File, oder getrennte, bezieht sich auf Notational Model und Domain Model, also ob Die View Informationen getrennt von den Business Daten gespeichert werden soll, um verteilte Domain Models geht es bei dieser Einstellung nicht.
 
G

Guest

Gast
Wildcard hat gesagt.:
Die Create Commands bestimmen letztlich in welcher Resource ein EObject erstellt wird.

Die finde ich dann im generierten Plugin, nicht im GMF-Projekt, oder? Sorry die Frage ist vielleicht blöd, aber was den generierten Code angeht hab ich noch nicht so den Durchblick bezüglich Strukturierung.

Wildcard hat gesagt.:
Aber nur das du vorbereitet bist: GMF versteht zwar verlinkte Objekte in verschiedenen Resourcen, aber bis alles so läuft wie du es haben möchtest, wirst du ein wenig Arbeit investieren müssen.

Oh ja, allerdings. Sitze ja jetzt schon seit Dezember an dem Projekt, und GMF war mir vorher noch kein Begriff, genauso wie EMF und GEF. Eigentlich war von der grafischen Seite her schon alles fertig, bis mir mein Betreuer (mache gerade Bachelorarbeit) vor 2 Tagen das mit den Redundanzen erzählt hat. Das heisst, ich muss praktisch alles komplett neu überarbeiten, da sich ja dadurch das Ecore-Modell geändert hat :autsch: Bisher bin ich nämlich von einer 1-zu-1-Beziehung zwischen Schema und Detailansicht ausgegangen.

Wildcard hat gesagt.:
Was du im gmfgen einstellst von wegen gleiches File, oder getrennte, bezieht sich auf Notational Model und Domain Model, also ob Die View Informationen getrennt von den Business Daten gespeichert werden soll, um verteilte Domain Models geht es bei dieser Einstellung nicht.

Da hast Du mich missverstanden. Die Property "Same File For Diagram And Model" hab ich auf false gelassen. Die Unterscheidung ist mir klar. Aber ich habe ja 2 gmfgen-Dateien, da ich mein Diagramm ja partitioniert habe. Aber ich habe ja unterschiedliche File Extensions in den beiden gmfgen-Dateien eingestellt.
 
G

Guest

Gast
Wildcard hat gesagt.:
Anonymous hat gesagt.:
Aber ich habe ja unterschiedliche File Extensions in den beiden gmfgen-Dateien eingestellt.
Ist das mittlerweile supported? Im Europa release ging das AFAIK noch nicht.

Aber sicher. Im *.gmfgen kannst Du im Wurzelknoten (Gen Editor Generator <Package Name Prefix>) in den Properties alles einstellen wie Du´s brauchst. Aber wie gesagt bei mir hat das keine Auswirkungen, da beide Diagramme in demselben Diagram-Domain-Dateipaar gespeichert werden. Vielleicht liegt es an der falschen Vorgehensweise. Ich schildere hier nochmal, wie ich es gemacht habe:

1. Domain Model erstellt
2. Gen Model erstellt
3. Die restlichen Modelle für globale Ansicht erstellt
4. Die restlichen Modelle für Detailansicht erstellt
6. Plugin für globale Ansicht erstellt.
7. Plugin für Detailansicht erstellt.
8. Plugin für Detailansicht als Reqired Plugin in Plugin für globale Ansicht hinzugefügt.

Weiss jemand was, wo ich da was anders machen kann, dass das mit separaten Diagram-Domain-Dateipaaren funktioniert?
 
G

Guest

Gast
Nach ein paar Versuchen, die nicht so ganz funktioniert haben, habe ich mir jetzt eine andere Vorgehensweise überlegt. Da es ja praktisch eine n:m-Beziehung zwischen globalen Elementen und Detailansicht ist, wird das ja etwas schwierig mit Diagrammpartitionierung. Ich brauche ja noch so ne Art Verknüpfungsoberfläche. Ich habe mir überlegt, einfach nur das Plugin für die globale Ansicht zu erstellen. Dort binde ich dann per Extension Point das Detailplugin ein. Zusätzlich würde ich dann noch einen weiteren Extension Point benötigen, der mir ein Fenster öffnet, wenn ich auf ein globales Element klicke mit einem Auswahlmenü, was zu tun ist (Detailschema öffnen, erstellen, importieren...). Von da aus komme ich dann über eventuelle weitere Fenster in die Detailansicht. Insofern hätte ich das Speicherproblem dann ja auch gelöst. Wird das funktionieren?
 
Status
Nicht offen für weitere Antworten.

Ähnliche Java Themen


Oben