# Grafik-Programm mit JAVA?



## Peter2000 (3. Mrz 2006)

Ich bin ein JAVA-Neuling und möchte in den nächsten Wochen  ein kleines Gafikprogramm schreiben, in dem eine begrentze Anzahl festgelegter Bitmaps (ca. 10) durch Icon Anwahl wahlweise angezeigt,verschoben und wieder gelöscht werden können. Desweiteren sollen die Bitmaps mit Hilfe einer begrentzen Anzahl unterschiedlicher Linien miteinander verbunden werden können.

Nun meine Frage: Bietet sich JAVA für dieses Problem an oder ist es eher ungeignet? Alternative?

Gruß,
Peter


----------



## AlArenal (3. Mrz 2006)

Hört sich an, als könnteste das in einem ganzen Wust verschiedener Sprachen umsetzen, u.a. auch in Java.


----------



## Peter2000 (3. Mrz 2006)

Das stimmt.  Mit  Hand-zu-Fuß-Programmierung mit Sicherheit auch mit .NET.   

Ich bin auf der Suche nach einer Programmiersprache, die besonders gut dazu geeignet ist - also ohne von Hand-zu-Fuß Programmierung.

Meine Kenntnisse in JAVA sind jedoch noch nicht ausreichend, um einzuschätzen, ob sich Bitmaps genauso einfach wie andere graphische Elemente (Kreise, etc.) handhaben lassen.

Was waren deine Top3, an die du bei deiner Antwort gedacht hast?


----------



## AlArenal (3. Mrz 2006)

Nun, ich arbeite auch nich in soo vielen verschiedenen Programiersprachen und Frameworks. In Frage kommen C, C++, alle .NET Sprachen, Basic, Java, Python, Smalltalk, und und und

Deiner Beschreibung nach zu urteilen ist die Aufgabe dermaßen "trivial", dass man sich entsprechend vielseitig umsetzen kann. Eine besondere Eignung hat m.E. keine dieser Sprachen für dein Problem. Hört sich ein wenig an wie 

Frage: "Mit welchem Auto komme ich von A nach B?"
Antwort: "Mit jedem, das fährt..."

Hast du vielleicht ne Skizze oder so, was genau du da umsetzen möchtest? Mir kam auf Anhieb ein Graph in den Sinn... Wenn du natürlich in keiner Sprache besondere Vorkenntnisse hast, wirste dich auf einigen Aufwand gefasst machen müssen, die Sprache deiner Wahl samt zugrunde liegender Konzepte und Tools zu verstehen.


----------



## Peter2000 (3. Mrz 2006)

Ich weiß, daß es im Prinzip keine Riesensache ist. 

Ich habe Erfahrung in .NET und C. Sie eignen sich definitiv nicht besonders gut dafür - ohne sehr hohen Programmieraufwand, da Steuerelemente vom Endanwender nicht so einfach von A nach B gezogen werden könnnen, etc....

Das Programm soll vereinfacht so aussehen:

Der Benutzer kann 10 Icons anklicken. Hinter jedem Icon steckt ein festgelegtes Bitmap, das er nach dem Anklicken beliebig über eine Oberfläche drapieren kann. 

Der Benutzer stehen stehen 10 unterschiedliche Pfeile zur Verfügung mit der jeweils 2 Bitmaps miteinander verbunden werden können. 

Den Pfeilen kann ein kurzer Text hinzugefügt werden

Bsp:




                      Bipmap1 -------------------> Bitmap2 
                                            hallo (Beschriftng des Pfeils)                   |                   




                       Bitmap4 <----------------------Bitmap3
                                            hallo2 (Beschriftung des Pfeils)       

Bitmap 2 ist ebenfalls mit Bitmap3 verbunden.


Solche Diagramme (Workflows) sollen mit den gegebenen Objekten beliebig erstellt werden können.


----------



## AlArenal (3. Mrz 2006)

Du meinst sowas?


----------



## Peter2000 (3. Mrz 2006)

Leider nein. Das wäre in .NET sehr trivial zu realisieren (drawstring, drawrectangle, etc.). Die Knoten des Graphen sind jedoch Bitmaps, die bsp. in .NET, VB, etc.  nur in bestimmten Steuerelementen dargestellt werden können. Und genau das macht es halt zu keinem trivialen Problem, wenn man eine Realisierung in .NET, etc. ins Auge gefaßt hat...

Kurz gesagt: Es geht darum, daß der Endanwender beliebige Graphen (Workflows) zeichnen kann, dessen Knoten vom Benutzer auswählbare Bitmaps und dessen Kanten vom Benutzer auswähbare Pfeile sind.


----------



## AlArenal (3. Mrz 2006)

Aber das ist doch dasgleiche in grün. Innerhalb von 5 Minuten hab ich dir die Anwendung aus obigem Screenshot für Testzwecke so abgeändert, dass ein Node ein Tittenbild (jpg, gif, bmp, ...) ist und ein anderes ein SVG (Vektor-orientiert), dass über Batik gerastert wird...


----------



## Peter2000 (3. Mrz 2006)

Beziehst du dich auf .NET oder auf JAVA?

Für .NET: Definitiv nein!


----------



## AlArenal (3. Mrz 2006)

Für .NET kann ichs nicht beurteilen. Ich kann mir aber auch schwer vorstellen, dass es da sooo gewaltig viel anders und schwerer sein soll.


----------



## Peter2000 (3. Mrz 2006)

Lassen wir .NET mal aus dem Spiel.

Wenn ich dich richtig verstanden habe, ist eine JAVA-Lösung meines Problems kein großes Problem - selbst wenn die Knoten Bitmaps sind?


----------



## AlArenal (3. Mrz 2006)

Das ist kein grundsätzliches Problem, nein. Wenn es im Grunde also sowas wie oben ist, was du machen willst, dann brauchst du erstmal eine passende Graph-Lib - es sei denn du willst dir antun das selbst zu entwickeln.

Ich selbst benutze JGo von NWoods, ist aber kommerziell. Du möchtest dir vielleicht mal JGraph anschauen, welches es u.a. auch in einer freien Version gibt: http://www.jgraph.com/


----------



## Illuvatar (3. Mrz 2006)

Wo du schon die ganze Zeit von .NET redest:
Wenn du da Bitmaps malen willst, machste halt statt Graphics#DrawString/DrawRectangle eben Graphics#DrawIcon oder DrawImage, was is da das Problem?
Selbiges gilt übrigens für Java auch 

Generell muss ich aber AIArenal zustimmen, das alles selbst zu entwickeln ist sehr aufwendig, und so etwas wie das JFreeChart ist da sehr geeignet.


----------



## Peter2000 (3. Mrz 2006)

In der Tat hatte ich mich falsch ausgedrückt, was DrawIcon/DrawImage betraf. Was ich damit sagen wollte, war, daß es damit ja noch lange nicht getan ist, sondern daraufhin viele Codezeilen in .NET zur Verwaltung folgen würden, in der Art einer regelrechten Hand-zu-Fuß-Programmierung und es somit alles andere als ein "triviales" Problem wäre, worin du mir ja auch zustimmst.

Deshalb suchte ich auch nach einer Nicht-.NET-Lösung des Problems.

Der Hinweis zu einer Gaphik-Lib von euch beiden hört sich aus den oben genannten Gründen sehr interessant an.

Vielleicht beschreibe ich das Problem noch einmal aus der Sicht des Endanwenders:


Der Endanwender findet ein Tool vor (in Desktopgröße), das eine Menüleiste besitzt zum Laden, Speichern und Neuanlegen seiner Workflows, etc... Weiterhin gibt es zwei Symbolleisten mit Icons, eine für die zur Verfügung stehenden Bitmaps und eine für die  unterschiedlichen Pfeile. Ein Klick auf ein Icon sorgt dafür, daß das jeweilige Objekt auf dem Dektop sichtbar wird und beliebig über den Dektop drapiert werden kann.


In .NET ist dies nur mit erheblichem Programmieraufwand zu leisten. Deshalb suchte ich nach nach einer anderen Entwicklungs-Plattform und bin dabei auf JAVA gestoßen.


Nun meine Frage: Kann man mit JAVA unter Verwendung dieser LIBs in überschaubarer Zeit mit überschaubarem Aufwand ein solches Tool "basteln", mit der ein User per Drag and Drop seinen Workflow erzeugen kann?

Oder sollte ich mich nach einer geeigneteren Plattform umschauen? Wenn ja, welche?


----------



## Bleiglanz (3. Mrz 2006)

Willst du Visio nachprogrammieren?

Im Eclipse Projekt gibt es ein ganzes Subprojekt - GEF - das sich mit der Entwicklung eines "Meta"-Frameworks für solche graphischen Anwendungen befasst, braucht aber wahrscheinlich eine grössere Einarbeitung...

Workflow: gibts auch schon diverse graphische BPEL Editoren am Markt...

ist auf jeden Fall kein 'schnell mal so hinprogrammiert' Tool


----------



## AlArenal (3. Mrz 2006)

Peter2000 hat gesagt.:
			
		

> Nun meine Frage: Kann man mit JAVA unter Verwendung dieser LIBs in überschaubarer Zeit mit überschaubarem Aufwand ein solches Tool "basteln", mit der ein User per Drag and Drop seinen Workflow erzeugen kann?



Blöde Formulierung deinerseits, denn für Astronomen sind auch Zeiträume von zig MIlliarden Jahren überschaubar 

Ich sags mal so: Ich habs hinbekommen und ich bin eigentlich erst vor zwei Jahren aus der Web-Welt zur Client-Seite übergelaufen.



> Oder sollte ich mich nach einer geeigneteren Plattform umschauen? Wenn ja, welche?



Die Plattform ist nicht das Problem. Graph-Libs gibts auch für .NET:

http://www.nwoods.com/go/dotnet.htm


----------



## Peter2000 (3. Mrz 2006)

Bleiglanz, genau das ist die Idee, die dahinter steckt.

Visio very, very light  :lol: 

Das Ziel ist mit wenigen Objekten und einem standardisierten Verfahren relativ einheitliche Workflows zu erzielen.

Visio läßt dem Anwender so viele Optionen, daß jeder seinen Workflow nach Gutdünken zusammenbauen kann und von einem einheitlichen Schema - trotz genauer Anweisungen und Schulungen -  nicht die Rede sein kann.

AlArenal, der Link zu GoDiagram ist äußerst interessant!!! Ach ja, es gibt heutzutage, ob du es glaubst oder nicht, Firmen, die von einem überschaubaren Zeitraum/Aufwand reden, und dabei betriebswirtschaflich gesprochen, einen  kurzfristigen Zeitraum meinen mit einem Personalaufwand <= 5 Personen  :wink: 

Und die aussterbende Spezies der Physiker... aber lassen wir das   

Zurück zum Thema:

Wie gesagt: GoDiagram  sieht sehr interessant aus.  Kennt ihr oder jemand anderes ähnlich gute/bessere  Konkurrenzprodukte?


----------



## AlArenal (3. Mrz 2006)

Habe seinerzeit nur Libs für Java evaluiert. Da gibts ne ganze Reihe, aber deren Preise und Lizenzbedingungen will man besser nicht wissen...

Und wenn du schon Workflows machen möchtest:
BPEL etabliert sich als Standard zur Abbildung von Workflows in XML und BPMN ist die zugehörige "Optik".


----------



## Peter2000 (3. Mrz 2006)

Das hört sich ebenfalls sehr interessant an.

Bleiglanz schrieb ebenfalls von diversen BPEL-Editoren auf dem Markt. Leider hatte ich das überlesen.

Leider nannte er auch keine Beispiele, die besonders empfehlenswert sind.  Ist es damit möglich das von mir angesprochene Tool zu erzeugen oder ist das lediglich ein Editor zur prinzipiellen Herstellung beliebiger Workflows?


----------



## Peter2000 (6. Mrz 2006)

Ich möchte meine Frage von letzten Freitag noch einmal aufgreifen:

Ist BPEL wirklich das Mittel der Wahl, das zur reinen Dokumentation bereits stattgefunderener Workflows dient oder ist es eigentlich nicht ähnlich wie ARIS ein Tool zur Erstellung von Workflows?


----------



## AlArenal (6. Mrz 2006)

BPEL ist kein Tool, sondern ein auf XML basierender Standard zur Definition von Geschäftsprozessen. Ob man BPEL nutzt, ist nicht zuletzt eine Frage der Ausrichtung. Derzeit ist BPEL natürlich vor allem stark wo es in den Bereich Webservices geht, d.h. wo in PBEL definierten Prozessen Leben eingehaucht wird.

Wer lediglich Prozesse dokumentieren will, benötigt diesen Benefit natürlich nicht. Stellt sich nur die Frage, wie es später weitergeht, d.h. ob man nicht früher oder später die Workflows in ein anderes System überführen / sie daran anbinden muss. Wir sind hiere auf Arbeit bisher auch darum herumgekommen, auch weil derzeit bei uns die Flows ebenfalls nur einen Dokumentationscharakter haben. Mittel- bis langfristig will der Kunde aber natürlich nicht alles doppelt und dreifach machen. D.h. wenn man irgendwann auf die Idee kommt, man könne ja Teile der Prozesslandschaft auch zum Leben erwecken und an eine BPEL Engine übergeben, biste gekniffen.

Da sollte man vorher wenigstens wissen wie BPEL aufgebaut ist, um später für eine evtl. Transformation nicht allzuviele Fallstricke einzubauen.

Dabei ist BPEL nicht nur ein Futter aus der Küche von Vadder Hopp und Prof. Dr. Dr. h.c. August-Wilhelm Scheer, sondern wird auch von Oracle, Microsoft, IBM, ... getragen.


----------



## Peter2000 (6. Mrz 2006)

Zu Scheer, GI, seine Art Vorleseungen abzuhalten und  - last but not least  - zu IDS  könnte ich jetzt schon ein paar Seiten füllen, aber lassen wir diese leidige Thema... Küche ist aber schon sehr schmeichelhaft....

Genau die von dir beschriebene Mächtigkeit dieses Standards hat mich in der bisherigen "Lektüre" darüber aber auch abgeschreckt, da zumindest mittelfristig, das ganze ein reines "Mal-Programm" bleiben soll und ob sich das langfristig ändert, steht auch noch in den Sternen...

Mir war dieser Standard im Übrigen bisher vollkomen unbekannt und die "Optik" BPMN auch. Nachdem ich mich hier auch noch etwas eingelesen habe, zweifele ich allerdings daran, daß ich damit ein einfach zu bedienendes Tool basteln kann, daß von DAUs benutzt wird um ihre Workflows graphisch darzustellen. Daß man damit tolle Workflows mit XML fix "zaubern" kann, das kann man schön erkennen, aber ein leicht zu bedienendes Endanwender-Tool, wie weiter oben von mir beschrieben, wohl eher nicht...


----------

