viele GMF Fragen

Status
Nicht offen für weitere Antworten.

js2002

Mitglied
Hi,

ich habe mich ein wenig in GMF eingearbeitet und einen ersten simplen Editor hinbekommen, habe aber noch 1000 Fragen:

1. Das Domain Modell ist für die Codegenerierung des Modell u.a. richtig?
Wozu sind die .edit und .editors Projekte die man mit diesem Modell anlegen kann?!

2. Wie ist soetwas machbar:
Prozessmodellierer:
Der Benutzer legt per drag & drop eine Objekt auf einen speziellen Bereich in der View. Anhand der platzierung (y achse) weiss ich dann wo es hingehören soll. Beispiel: er platziert es unten, dann weiss ich es ist später im prozess ist und kann mir das speichern. Sozusagen horizontale sichtbare Grenzen einbauen. Wie und wo coded man sowas?!
Wegen solchen "Problemen" bin ich fast wieder dabei doch GEF anstatt GMF zu nehmen.
Was meint ihr?
 

Natorion

Bekanntes Mitglied
Hmm lange her aber ich versuch mal:

1.) .edit sind da nicht die ItemProviders für die verschiedenen Nodes drinnen?
.editor ist glaub ich der EMF-Editor für dein Model (also der mit dem Tree)

2.) Hmmm, eventuell einfach zwei Rechtecke machen, die als Container benützt werden. Scheint eine logische und relativ einfache Möglichkeit zu sein. Also oberer Container Beschreibungen oder sowas und der untere Container enthält nur Prozesse.
 

js2002

Mitglied
Zu 1.: Hmm und .diagram vereint dann alles oder wie?

Zu 2.: Ich bräuchte jedoch eine variable Anzahl an Containern.
Prozess-Phase 1 2 3 .. alle so untereinander weg. Muss mir da noch was überlegen ....
 

Natorion

Bekanntes Mitglied
1.) das ist der gmf-editor soweit ich mich erinnern kann. im zweifelsfall einfach kurz den sourcecode checken bzw den workflow beobachten (sieht man im cheatsheet besonders gut).

2.) najo, das ist doch kein problem. ob da jetzt 2 oder 20 container sind. du kannst sie ja verschiebbar aber nicht löschbar machen usw. oder dsa hinzufügen und löschen geht nur über eigene buttons. grundsätzlich kein problem, wird halt alles nur aufwendiger ;)
 

Wildcard

Top Contributor
Das edit Plugin ist Eclipse unabhängiger Code der generisch verwendet werden kann um ein Model in Listen, Tabellen, Bäumen,... anzeigen zu können, und enthält alle nötigen Commands um das Modell zu manipulieren.
In Eclipse lässt sich zB mit dem edit Plugin mit wenigen Zeilen ein Content und ein LabelProvider erstellen.
Weiterhin kann das edit Plugin auf beliebge Typen adaptieren zu lassen (Stichwort Erweiterungsobjekt).

Das Editor Plugin ist Eclipse spezifisch und legt einen einfachen Baum Editor für das Modell an, der primär zum testen des Modells Sinn macht.
 

js2002

Mitglied
Mal ne generell Frage noch hier zu GMF:

Ich lass mir "am Ende" ja ein .diagram plugin erstellen. Wie sieht es mit manuellen Änderungen aus?
Wenn ich z. B. Sachen einbauen möchte, die ich nicht mit GMF einbauen kann oder will, wie z. B. Controlfluss Code für verschiedene Berechnungen.

Klar ich kann die ins .diagram plugin einpflegen, aber wenn ich dann mit GMF Änderungen mache, muss ich ja ein neues .diagram erzeugen und meine "ohne gmf"-Änderungen sind WEG!

Wie macht man sowas denn?
 

Wildcard

Top Contributor
GMF merged Code mit dem existierenden (zur Sicherheit sollte man aber immer eine Codeverwaltung verwenden).
Dazu sind die @generated Tags.
Wenn man eine Änderung einpflegt: @generated NOT und der Code Generator ignoriert die Methode.
Für meine Zwecke hat sich ein zweiter Source Ordner customsrc bewährt, der die Package Struktur doppelt. Dadurch lassen sich händisch erstellte Klassen leichter von generierten unterscheiden.
 

js2002

Mitglied
Das mit dem NOT war ein guter Tip, bloss da gibts ein Problem:

Ich mache testweise eine Änderung in der Datei:

Code:
public class DiagramEditorActionBarAdvisor extends ActionBarAdvisor

bei der Methode:
Code:
public static class AboutAction extends WorkbenchWindowActionDelegate

Wenn ich dann aus dem Ursprungsplugin .diagram Code generiere ist das logischerweise wieder weg.
Beim Ursprungsplugin gibt es diese Klasse aber noch gar nicht.

Wie geht sowas denn?




2. Ich habe heute nurmal versucht, die tool palette beim start der rcp applikation nicht rechts sondern links anzuzeigen.
Es soll wohl irgendwie über extensions gehen, ich habe aber keinen Plan.
Die Webliteratur hilft mir auch nicht weiter.
Ich weiss, dass ich irgendwas von dem Gesamtkonzept von GMF nicht kapiert habe, weiss aber nicht was.
Wo finde ich da was gutes?
Ich verzweifel gerade, wenn man nichtmal so kleinigkeiten hinbekommt...
 

Wildcard

Top Contributor
js2002 hat gesagt.:
Ich mache testweise eine Änderung in der Datei:

Code:
public class DiagramEditorActionBarAdvisor extends ActionBarAdvisor

bei der Methode:
Code:
public static class AboutAction extends WorkbenchWindowActionDelegate

Wenn ich dann aus dem Ursprungsplugin .diagram Code generiere ist das logischerweise wieder weg.
Beim Ursprungsplugin gibt es diese Klasse aber noch gar nicht.
Keines davon ist eine Methode, daher verstehe ich die Frage auch nicht.
 

js2002

Mitglied
Code:
	public static class AboutAction extends WorkbenchWindowActionDelegate {

		/**
		 * @generated
		 */
		public void run(IAction action) {
			MessageDialog.openInformation(getWindow().getShell(),
					Messages.DiagramEditorActionBarAdvisor_AboutDialogTitle,
					Messages.DiagramEditorActionBarAdvisor_AboutDialogMessage);
		}
	}

diese Methode in der Class AboutAction habe ich mal veränder dass es so aussieht:

Code:
	public static class AboutAction extends WorkbenchWindowActionDelegate {

		/**
		 * @generated
		 */
		public void run(IAction action) {
			MessageDialog.openInformation(getWindow().getShell(),
					Messages.DiagramEditorActionBarAdvisor_AboutDialogMessage,
					Messages.DiagramEditorActionBarAdvisor_AboutDialogMessage);
		}
	}
 

js2002

Mitglied
Jetzt hats geklappt. Kannste das andere auch noch sagen. Also das mit dem "docking" der tool palette?


@all: Kenn niemand ein gutes GMF Buch?


EDIT: Nach ein paar mal .diagram erstellen verschwindet das "NOT" manchmal wieder. Weiss jemand warum?
 

Wildcard

Top Contributor
Schau dir dazu die GEF Resourcen/Beispielcodes an.

Es gibt (noch) kein Buch zu GMF und auch noch kein (gedrucktes) Buch zu GEF.
 

js2002

Mitglied
Hi Wildcard nochmal,

würdest du ein "Coaching" mit mir durchgehen? So per skype oder telefon...
Ich würde dich auch dafür bezahlen, da ich glaube dass du da echt voll die Ahnung hast.
47775134 icq, wenn interesse oder antworte hier...
 

js2002

Mitglied
Ich habe nun meine genmodel fertig und frage mich:
Wie benutzt man denn überhaupt das .editor Plugin?

Muss man jedes plugin Projekt exportieren und zur jar machen und dann in den plugin Ordner legen? oder wie ist es gedacht?
 

Wildcard

Top Contributor
Das EMF Editor Plugin ist primär für den Entwickler selbst, zu Testzwecken und natürlich nicht erforderlich.
Das Deployment erfolgt idealerweise über ein Feature Projekt. Daraus lässt sich dann auch problemlos eine Update-Site für den Update-Manager erstellen.
 
Status
Nicht offen für weitere Antworten.

Ähnliche Java Themen

Neue Themen


Oben