# GMF Reihenfolge innerhalb von Compartments änderbar machen



## NoUsernameFound (28. Dez 2009)

Hallo,

ich erstelle gerade einen Diagrammeditor für mein EMF Ecore Modell mit dem GMF, klappt alles sehr gut, nur habe ich momentan folgendes Problem:

Ich benötige innerhalb eines Nodes dessen Childnodes untereinander angezeigt. Dies habe ich schon über ein Compartment hinbekommen (darüber kann ich jetzt auch Childnodes unterschiedlichen Typs mischen, also es können abwechselnd untereinander Nodes von verschiedenen Childnode-Referenzen vorkommen). Mein Problem ist nun, dass wenn ich die Childnodes einmal so hinzugefügt habe, ich deren angezeigte Reihenfolge nicht mehr ändern kann.

In einem nächsten Schritt möchte ich noch die angezeigte Reihenfolge in die Modell-Datei (also in das "Domain File") ablegen (also nicht die Pixel-position wie sie im "Diagram-File" abgelegt wird, sondern nur die Reihenfolge (muss ich eben extra ablegen, weil es unterschiedliche Childnode-Typen sind, die in unterschiedlichen Referenzen gespeichert werden).

Der zweite Schritt ist aber noch nicht so wichtig und würde ich voraussichtlich auch alleine schaffen, beim ersten Teil würde mir ein Tipp schon viel weiterhelfen 
Konnte leider bis jetzt noch nichts brauchbares finden (auf ein XY-Layout umstellen will ich eigentlich nicht, da mir die "strikte" listenartige Reihung eigentlich sehr entgegen kommt.

Vielen Dank schonmal!


----------



## Wildcard (28. Dez 2009)

Über die EditPolicies kannst du drag and drop Behavior hinzufügen. Die EditPolicy kann dein ein Move Command erstellen das die Reihenfolge ändert.




> In einem nächsten Schritt möchte ich noch die angezeigte Reihenfolge in die Modell-Datei (also in das "Domain File") ablegen (also nicht die Pixel-position wie sie im "Diagram-File" abgelegt wird, sondern nur die Reihenfolge (muss ich eben extra ablegen, weil es unterschiedliche Childnode-Typen sind, die in unterschiedlichen Referenzen gespeichert werden).


Die Reihenfolge ergibt sich automatisch aus der EList. Die Positionen werden sowieso in GMFs Notation Model abgelegt, sind also vom Domain Model getrennt.


----------



## NoUsernameFound (1. Jan 2010)

ok, danke schonmal für die rasche Antwort!
hab mein Problem leider noch nicht ganz lösen können. Die Änderungen die ich dazu machen muss (also die Behaviour hinzufügen) sind im Code vorzunehmen, oder? (also das ist nicht über das mapping oder gen-model möglich?)

ich habe mir den EditPart von dem Compartement angesehen, diesem wird schon eine drag and drop behaviour hinzugefügt. oder muss ich mir die EditParts von den zwei Elementen, die im Compartment darstellbar sind anschauen?

Momentan ist es so, dass sobald ich ein Element aus dem Compartment anklicke und ziehe, erscheint sofort das runde, rote Sperrzeichen.

Hab leider über Google und Forumssuche kein Beispiel oder ähnliches finden können.


----------

