EMF/GMF Anfänger Fragen

manius

Mitglied
Hallo,

habe mein altes EMF/GMF Projekt ausgegraben, und habe wieder ein paar Fragen. Vielleicht kann mir jemand paar Tipps geben. Bin blutiger Anfänger also verzeih mir meine ausdruckweise...

1. ich habe mein EMF.Editor so umgebaut, daß ich über Button/Action neue Elemente über Commads zufügen kann. (soll eine import funktion sein...wobei mehrere Elemente "Tree" zugefügt werden sollen).
Funktioniert erstmal gut, aber beim Undo werden nur einzelne Command zurück genommen, d.h einzelne Elemente ... (beim über 100 Elemente etwas unschön...) Frage: wie kann ich z.B ein Tree von Elementen auf ein mal zufügen? oder mehrere commad sammeln und auf ein mal absetzen???

2. im Diagramm hätte ich gerne eine Funktion wo ich mehrere Elemente markieren und dann mit einem Element ersetzen kann. beim z.B doppel-klick wurde dann der Inhalt in neuem Edit-Fenster zur Verfügung stehen.
Ist so was einigermaßen einfach zu implementieren? wonach soll ich googln?

3. noch eine triviale Frage: wie kann ich in Properties Values als Hex anzeigen (Editor oder Diagram) ?


Gruß und Danke im Voraus !!!
 

Wildcard

Top Contributor
1. ich habe mein EMF.Editor so umgebaut, daß ich über Button/Action neue Elemente über Commads zufügen kann. (soll eine import funktion sein...wobei mehrere Elemente "Tree" zugefügt werden sollen).
Funktioniert erstmal gut, aber beim Undo werden nur einzelne Command zurück genommen, d.h einzelne Elemente ... (beim über 100 Elemente etwas unschön...) Frage: wie kann ich z.B ein Tree von Elementen auf ein mal zufügen? oder mehrere commad sammeln und auf ein mal absetzen???
Verschiedene Möglichkeiten:
Mach ein ChangeCommand und ändere dort einfach das Modell. Das ChangeCommand nimmt alle Änderungen im Modell wie ein Recorder auf und kann sie dann Rückgängig machen. Alternativ musst du mit CompositeCommands arbeiten.

2. im Diagramm hätte ich gerne eine Funktion wo ich mehrere Elemente markieren und dann mit einem Element ersetzen kann. beim z.B doppel-klick wurde dann der Inhalt in neuem Edit-Fenster zur Verfügung stehen.
Ist so was einigermaßen einfach zu implementieren? wonach soll ich googln?
In GMF ist das meiste leider nicht so einfach. Hört sich an also ob der GMF Diagram Partitioning Support in etwa ist was du dir vorstellst, die Action musst du allerdings selbst schreiben.

noch eine triviale Frage: wie kann ich in Properties Values als Hex anzeigen (Editor oder Diagram) ?
Verstehe die Frage nicht wirklich. Du kannst zB den ItemProvider anpassen wenn der Wert immer als Hex angezeigt werden soll.
Wenn der Wert auch in GMF manipuliert werden soll musst du den GMF Text Parser anpassen um den Wert wieder in einen int? umzuwandeln.
 

manius

Mitglied
Servus Wildcard,
Danke!

zu 1. jooo danke ! ChangeCommand nehme mir morgen vor .... :)
zu 2. das Problem nehme ich mir aber etwas später vor. ok aber Stichwort habe schon :) Diagram Partitioning Support... ich google erst bevor ich weitere Fragen stelle....
zu 3. hmmm klingt irgendwie kompliziert für so einfache Aufgabe? ich möchte manche Properties obwohl die von int-Typ sind, im hex anzeigen und auch im hex editieren. (z.B int max_value = 256 angezeigt wird 0x100 und so will ich auch editieren).
Ich dachte vielleicht kann ich was mit "Visual representation" im gmfmap-File (für Diagramm) anfangen? da gibt’s gewisse Formatierungs-Möglichkeiten die ich aber nicht 100% verstehe ....
(Dort gibts Edit Method, Editor Pattern, View Method, View Pattern....) ??? (EditMethod -> PRINTF klingt irgendwie gut :) oder muss ich das programmatisch lösen ?
(OK! wenn sogar, die Einträge gelten nicht für Properties-View :-(( ....)

Gruß
 

manius

Mitglied
Hi,

1. mit ChangeCommand habe ich leider nicht geschafft (habe nicht kapiert wie das zu verwenden ist). aber dafür mit CompositeCommands hat gut geklappt. (mag zwar nicht ausweichen aber was soll's...)
gibt's da große Unterschiede in der Implementierung ?

3. hier habe ich ein neuen EDataTyp erzeugt, der mir einfach int-werte als hex-String liefert! ist doch eleganter oder? und es scheint zu funktionieren... :)

jetzt kämpfe ich mit Xpand aber dafür mache ich neuen Thread...

Wildcard Danke und Gruß !!!! :toll:
 

Ähnliche Java Themen


Oben