# Suche Framework um Grafikprogramm zu schreiben.



## dhachim (21. Nov 2008)

Hallo zusammen. Ich hab schon ein wenig google beschäftigt, aber noch nix brauchbares gefunden.

Ich möchte ein Grafikprogramm schreiben, mit dem man Texte, einfach geometrische Figuren und Bilder einfügen kann. Diese Elemente möchte ich Groupieren können und auf Ebenen anordnen.

Genauer genommen, habe ich ein altes Programm, welches mit AWT geschrieben wurde, und möchte das Kundenfreundlicher und Komfortabler gestalten, da die möglichkeiten doch arg begrenzt sind. 
Unter c# hab ich so ein Toolkit, oder framework schonmal gesehen, weiss aber nicht mehr wie es heisst. 
Es soll aber unter Java geschrieben sein. 

Meine Frage ist nun: kennt jemand ein Framework das man frei nutzen kann ? Möglicherweise auch ein kommerzielles ? 
Es geht mir primär nur darum, das Rad nicht wieder neu erfinden zu müssen. 

Danke schonmal für die Hinweise


----------



## Wildcard (21. Nov 2008)

Schau dir Draw2D, GEF und GMF an.


----------



## dhachim (26. Nov 2008)

Danke dir für die Tips, klingt sehr Interessant. Aber ich glaube dass ich es nicht nutzen kann, da die Applikation eine Standalone sein müsste. Ich kann nicht zumuten, dass sich der user Eclipse installiert. 

Oder versteh ich da was falsch ? 

Der jetzige Editor, den ich habe ist mit Java2d umgesetzt, und ehrlich gesagt sehr grauslig. man weiss nie in welcher Ebene befinde ih mich, warum kann ich das nicht anklicken, und die Undofunktion läuft auch nur wann sie mag  

Irgendwie hab ich das Gefühl, dass mich die Sache sehr viel zeit kosten wird.


----------



## Wildcard (26. Nov 2008)

Eclipse muss man nicht installieren, sondern nur entpacken. Ein Eclipse RCP ist im Minimalfall so ungefähr 3 MB, sollte also zumutbar sein.
Speziell durch EMF + GMF bekommst du sehr leistungsfähige Editoren in wenigen Stunden, das sollte man sich definitiv überlegen...

Undo und so weiter sind übrigens schon fertig implementiert.  :wink:


----------



## dhachim (27. Nov 2008)

hmmm jop da hast du sicherlich recht. 

Kennst du zufällig ein minimales Beispiel, was ich mir mal anschauen könnte ? Ich habe so einen kleinen Eclipse Client noch nie gesehen. 

Sonst ist dieses Framework eigentlich genau das was ich suche. Ich brauche nur Texte, Vierecke und Ellipsen, Striche.
Eigene Grafikelemente kann man sicher auch noch einbauen, da ich zwingend einen Barcode drucken muss. 

Danke schonmal für die Hilfe. Nen anderes kennst du nicht ? Ich hab mal geschaut, sieht aber Mau aus soweit ich das sagen kann.


----------



## Wildcard (27. Nov 2008)

In Eclipse ein neues PlugIn Projekt erstellen, RCP anklicken, Template auswählen, schon hast du eine funktionierende RCP.


----------



## dhachim (27. Nov 2008)

http://www.eclipse.org/articles/Article-RCP-1/tutorial1.html

Damit hab ich es mal geschafft eine Standalone anwendung zu machen ... feine Sache: 
http://www.vogella.de/articles/RichClientPlatform/article.html#firstplugin
Dieses Tutorial ist auch super. 

leider ist die Ausbeute an GMF tutorials sehr mager bzw ich komme immer wieder auf das Eclipse Wiki, wo halt nix steht. Weisse Seite, das wars. 


Für mich ist das Arbeiten mit Frameworks Neuland, deshalb habe ich auch irgendwie keine Ahnung wie ich RCP mit dem GFM verbinden kann.

Kannst du mir da irgendwie nen Tipp geben, wie ich an die die Sache rangehen soll ?


----------



## Wildcard (27. Nov 2008)

dhachim hat gesagt.:
			
		

> leider ist die Ausbeute an GMF tutorials sehr mager bzw ich komme immer wieder auf das Eclipse Wiki, wo halt nix steht. Weisse Seite, das wars.


Eigentlich sind die Tutorials dort sehr hilfreich, ausführlich und großzügig mit Illustrationen hinterlegt. Die leere Seite ist wohl ein technisches Problem. Versuch es in ein paar Stunden nochmal.


----------



## dhachim (27. Nov 2008)

gestern war das Problem auch schon .... hmmm


----------



## Wildcard (27. Nov 2008)

Ja, die ganze eclipsepedia ist zZ down.
Hier findest du sicherlich ein paar webinars für den Anfang:
http://live.eclipse.org/


----------



## foobar (27. Nov 2008)

Wildcard hat gesagt.:
			
		

> Eclipse muss man nicht installieren, sondern nur entpacken. Ein Eclipse RCP ist im Minimalfall so ungefähr 3 MB, sollte also zumutbar sein.



3 MB? Die kleinste RCP-Anwendung, wie das HelloWorld mit lediglich dem Eclipse RCP Feature, ist mindestens 6 MB groß. Oder verwendest du eRCP?


----------



## Wildcard (27. Nov 2008)

foobar hat gesagt.:
			
		

> 3 MB? Die kleinste RCP-Anwendung, wie das HelloWorld mit lediglich dem Eclipse RCP Feature, ist mindestens 6 MB groß. Oder verwendest du eRCP?


Keine Ahnung, war nur ein Schuß ins Blaue. Sollte nur heißen: ist nicht 100MB mächtig, oder so  :wink:


----------



## dhachim (27. Nov 2008)

danke für den live Lunk... da sind 2 gute Videos bei. 

Generll sieht das sehr einfach aus, und man kann sich sozusagen das zusammenklickern was man braucht. Aber mal testen ... da werden noch 1000 Fragen kommen  

Unklar ist mir noch, wie ich RCP und GMF verbinde  aber das werden wir sehen....


----------



## Wildcard (27. Nov 2008)

Im Prinzip passiert das out of the box. Deine generierten PlugIns bringen einfach zusätzliche Dependencies in die Target Platform.
Aber du hast recht, es ist wirklich sehr einfach. Die Toolchain ist noch nicht perfekt, aber nach etwas ausprobieren kommt man damit schon sehr weit. Aber du darfst nicht vergessen: Was dir generiert wird ist die Rohform. Irgendwo hören die Möglichkeiten des Generators dann auf und du musst den Code händisch an deine Bedürfnisse anpassen.


----------



## foobar (27. Nov 2008)

Wildcard hat gesagt.:
			
		

> foobar hat gesagt.:
> 
> 
> 
> ...



Axo, dachte schon es gäbe ne Möglichkeit die Größe zu reduzieren denn 20-30 MB kommen da schnell mal zusammen.


----------



## dhachim (27. Nov 2008)

Wildcard hat gesagt.:
			
		

> Im Prinzip passiert das out of the box. Deine generierten PlugIns bringen einfach zusätzliche Dependencies in die Target Platform.
> Aber du hast recht, es ist wirklich sehr einfach. Die Toolchain ist noch nicht perfekt, aber nach etwas ausprobieren kommt man damit schon sehr weit. Aber du darfst nicht vergessen: Was dir generiert wird ist die Rohform. Irgendwo hören die Möglichkeiten des Generators dann auf und du musst den Code händisch an deine Bedürfnisse anpassen.




Das ist klar. Prinzipiell gehts ja darum, dass ich das alte ablösen will, was nur Ärger bereitet. DMF bietet schon einiges, wenn es auch sehr verwirrend ist  Aber nach "fast" 2 tutorials: Abschlissen lassen die sich auf einem Linux System nicht, da ein Fehler beim letzten Schritt auftritt. Allerdings hab ich hier nur Eclipse 3.2 und GMF 1. irgendwas ... um höher zu gehen brauch ich erstmal 3.3 und das dauert mit dem Download 

http://dev.eclipse.org/newslists/news.eclipse.modeling.gmf/msg13245.html das is mein Fehler  Haben auch andere .. hehe


----------



## dhachim (27. Nov 2008)

mal ne saudoofe frage :

Wie bekomm ich denn das GMf zum laufen ? 
ich habe mir Eclipse in der version 3.3 Europe runtergeladen. aber irgendwie finde ich GMF nicht in den Updatesites.


----------



## Wildcard (27. Nov 2008)

Nimm dir doch Eclipse 3.4 mit dem neuen Update Manager. Aber auf der Euopa Discovery Site ist es ebenfalls enthalten falls du aus irgendwelchen Gründen 3.3 nehmen musst.


----------



## dhachim (28. Nov 2008)

Ich komm mir vor wie ein blutiger anfänger 

2 Tage und noch nix zum Laufen gebracht. Ich habe mich jetzt nochmals mit dem GMF Tutorial auf der Wiki Seite beschäftigt. Dort wird ein Eclipsepaket vorgeschlagen, in dem schon alles installiert ist. Das habe ich mir runtergeladen und alles klappt ganz prima. 

naja anfangs wird von einem Cheat Sheet gesprochen... das gibts schonmal nicht bei meiner eclipse Version. 
Egal, geht auch ohne. Wozu gibts das Dashboard. Ich hab mein ecore Model, mein genmodel, hab die grafical, toolin und mapping geschichte durchgemacht. Alles prima. 
Create generator model ist auch noch prima. Aber dann: wie in jedem Tutorial 
Ich lass mir aus dem gmfgen dem diagram Cede erzeugen.

Fehlermeldung: 
Problems while generating code
  Can't organize imports due to syntax errors in the compilation unit MyReorientConnectionViewCommand.java
  Can't organize imports due to syntax errors in the compilation unit MyParserProvider.java
  Can't organize imports due to syntax errors in the compilation unit MyNewDiagramFileWizard.java


Es wird ein riesen Haufen Code erzeugt und jete Menge Fehler drin. Kennt dies nicht, Methoden fehlen etc... 
Immer wieder wird am Ende erwähnt, dass das dann unter Examples findet was ich gemacht habe.... leider auch negativ. 



Gibt es nicht vielleicht ein Minitutorial in dem ich einfach mal was zum Laufen bekomme. 
Ein Programm mit dem ich einfach ein Viereck zeichen kann. Das würde mich schon gnädiger stimmen. Im Moment habe ich keine Ahnung mehr was ich anders machen könnte. Es ist zum Verzweifeln.


----------



## Wildcard (28. Nov 2008)

Das Dashboard hilft die Schritte in die notwendige Reihenfolge zu bringen und bietet shortcuts für die entsprechenden Wizards an.

Ganz wichtig: vor dem generieren musst da deine verschiedenen Models validieren.
Invalide Modells generieren nämlich Müll. Rechtsklick auf ein Element im Baum -> validate um dieses Element und die children zu validieren.


----------



## dhachim (28. Nov 2008)

wie validieren ? wo ? 

Also im Dashboard kann ich nirgens nen rechtsklick machen.


----------



## Wildcard (28. Nov 2008)

Im Baum. ZB. in der gmfmap


----------



## dhachim (28. Nov 2008)

naja ändert leider nix an den Fehlermeldungen....


----------



## Wildcard (28. Nov 2008)

Ist denn alles valide? ecore, gmfmap, gmftool, gmfgraph und gmfmap?


----------



## dhachim (28. Nov 2008)

ja alles klappt beim validieren. keine Probleme ...


----------



## Wildcard (28. Nov 2008)

Hast du auch vorher das Ecore Modell generiert (genmodel öffnen und generate auswählen)? Ist das Projekt in dem dein ecore liegt ein PlugIn Projekt?


----------



## Wildcard (28. Nov 2008)

Ahhh, Eclipsepedia ist wieder online. Eines der Tutorials:
http://wiki.eclipse.org/GMF_Tutorial


----------



## dhachim (28. Nov 2008)

genau das habe ich gemacht..... aber dabei entsteht diese fehlermeldung. 

Man fängt hier ja mit dem ecore Model an.


----------



## Wildcard (28. Nov 2008)

dhachim hat gesagt.:
			
		

> genau das habe ich gemacht..... aber dabei entsteht diese fehlermeldung.
> 
> Man fängt hier ja mit dem ecore Model an.





> Problems while generating code
> Can't organize imports due to syntax errors in the compilation unit MyReorientConnectionViewCommand.java
> Can't organize imports due to syntax errors in the compilation unit MyParserProvider.java
> Can't organize imports due to syntax errors in the compilation unit MyNewDiagramFileWizard.java


Diese Fehlermeldung entsteht keinesfalls beim ecore generieren, weil das GMF Klassen sind.


----------



## dhachim (28. Nov 2008)

Sorry missverständnis ... natürlich entsteht das bei der Codegenerierung ...


----------



## Wildcard (28. Nov 2008)

Welche imports fehlen denn, und wurde deine ecore Klassen fehlerfrei erzeugt?


----------



## dhachim (28. Nov 2008)

Ohh Mann.... ohne Cheat Sheet ist das Tutorial nix wert. 

ich habe das Cheat Sheet jetzt doch noch gefunden. Ist ein Bug in der Eclipse variante.

Auf ein Neues.... 

Für alle die ähnliches Problem haben: 
http://dev.eclipse.org/newslists/news.eclipse.modeling.gmf/msg14004.html


----------



## dhachim (1. Dez 2008)

Ich schreibe jetzt hier nochmal etwas was vielleicht anderen helfen kann.

Das Problem und meine Fehlermedungen kamen von einer Preference Einstellung in Eclipse:
assert wurde nicht erkannt, und Komischerweise auch 3 Klassen 

Lösung hier 



> One of the things that Java IDE's have always had over Visual Studio is the ability to target older versions of the VM from the latest and greatest versions of the tools.  For example, I develop in Eclipse 3.2 day to day, but I target Eclipse 3.0 on Java 1.4 for compilations and to debug against.  That way I get errors in Eclipse 3.2 if I try to use a method that isn't in the Eclipse 3.0 object model.  Very useful.  That said - I had a problem recently because my IDE was telling me that I couldn't use the "assert" keyword which was introduced in Java 1.4 (which we require for Teamprise).
> 
> *The problem was in Windows, Preferences, Java, Compiler.  Source compatibility was set to Java 1.3 and .class file compatibility set to Java 1.2 - I corrected these preferences to make them allow Java 1.4 source and class files and now the assert keyword works just fine.*


----------



## Wildcard (1. Dez 2008)

Deshalb wollte ich das du Fehlermeldungen postest, das hätte ich dir auch sagen können  :wink:


----------



## dhachim (1. Dez 2008)

hatte ich doch ... eine Seite vorher. 

Voller Elan habe ich nun http://www-128.ibm.com/developerworks/opensource/library/os-ecl-gmf/ dieses tutorial gemacht, und bis auf Fehlermeldungen und nicht validierbare Modelle geht da nix. Scheint eine ganz alte Version zu sein, nach den Screenshots zu Folge. 

Kennst du ein Tutorial, dass suich speziell mit Shapes befasst ? Also rechtecke, Ellipsen und Text. 
Theoretisch ist mir auch noch nicht klar was da alles passiert.


----------



## Wildcard (1. Dez 2008)

dhachim hat gesagt.:
			
		

> hatte ich doch ... eine Seite vorher.


Das du kompilier Fehler mit assert hast, hast du nicht gepostet.

Was stört dich denn an diesen Tutorials:
http://wiki.eclipse.org/GMF_Tutorial
http://wiki.eclipse.org/GMF_Tutorial_Part_2
http://wiki.eclipse.org/GMF_Tutorial_Part_3
http://wiki.eclipse.org/GMF_Tutorial_Part_4

?


----------



## dhachim (1. Dez 2008)

oh da gehts weiter ... sorry das habe ich jetzt bei allem nicht gesehen... ja Part2 etc sieht nachdem aus was ich suche ... danke.


----------

