Ich habe eine DSL mit zwei Haupt-Domain-Klassen: Area und Entity. Bereiche werden visuell durch eine GeometryShape dargestellt, während Entitäten durch eine CompartmentShape dargestellt werden. Entitäten können in eine Area eingebettet werden oder nicht (in diesem Fall sind sie in das Root-Objekt eingebettet, das eine Art Area ist). Es kann Beziehungen zwischen Entitäten geben, einschließlich zwischen Entitäten in verschiedenen Bereichen. Bereiche können nicht in andere Bereiche oder in eingebettete Entitäten eingebettet werden.Wie verschachteln Sie Formen in einem DSL-Tools-Diagramm?
Mein Problem ist, dass ich das gewünschte Verhalten nicht aus dem Diagramm bekommen kann. Die Einbettung von Entitäten in Bereiche funktioniert auf der Modellebene sehr gut, aber die visuelle Darstellung verhält sich unregelmäßig. Wenn ich z. B. eine Entität verschiebe, die in einem Bereich außerhalb dieses Bereichs erstellt wurde, reagiert sie nicht mehr auf Mausklicks (ich habe Code, der das erneute Parenting ausführt, aber irgendwie ist die Diagrammseite der Dinge beschädigt).
Ich habe hoch und niedrig nach Proben gesucht, wie dies zu tun ist, und komme leer. Jedes Beispiel, das ich im Internet gefunden habe, simuliert die Verschachtelung über "Referenzen" -Beziehungen, während ich eine echte Einbettung der Domain-Klassen (und damit ihrer zugehörigen Shape-Klassen) durchführe.
Hat jemand ein Beispiel, wie man das macht?
Während ich entlüfte, bin ich der Einzige, der denkt, dass die Diagramm-/Formklassen massiv zu wenig dokumentiert sind?
Das Buch simuliert Verschachtelung über "Referenzen" Beziehungen. –
Und es funktioniert nicht, wenn Sie das Gleiche tun, aber mit einer Einbettungsbeziehung? –