SVG & Servlets

Status
Nicht offen für weitere Antworten.
Hi all,
hätte da mal ne Frage an euch.
Bin gerade dabei ein kleinen "Terminkalender" zu programmieren. Diesen will ich in grafischer Form mit hilfe von SVG darstellen.
Die Größe des Kalenders legt ein Start- und Enddatum fest das ich dem Servlet in der URL übergebe.
(das Servlet zeichnet dann das SVG...).
Desweiteren übergebe ich dem Servlet noch verschiedene Ereignisse die es in den Kalender eintragen soll....
zB. "Urlaub" mit start und enddatum und sonstige Termine...

Code:
// Ereignisse die in den Kalender eingetragen werden soll
String[] terminname = request.getParameter("termin").split(";"); 

// Start der Ereignisse
String[] terminStart = request.getParameter("tStart").split(";");

// Ende der Ereignisse
String[] terminEnde = request.getParameter("tEnde").split(";");


// Diese Werte begrenzen die größe des Kalenders.... 
String dateStart = request.getParameter("dateStart");
String dateEnd = request.getParameter("dateEnd");

Bis jetzt kann ich leider nur Zeitspannen von 2 Jahren abdecken...
Habe einfach nur ermittelt ob der Zeitraum über zwei Jahre hinaus geht und habe dann den Kalender als 2 volle Jahre dargestellt .
Wenn die start und enddaten z.B wie folgende sind.. startdatum = 01.05.06 enddatum = 01.07.06
dann habe ich einfach ein SVG gezeichnet mit der width 365 und habe nach jeden monat nen Senkrechten Balken nach unten gezogen... usw... um die Monate voneinander zu trennen.
Bei zwei Jahren ging das dann mit der gleichen Methode...
Die Ereignisse habe ich auch mehr oder weniger eingezeichnet bekommen... aber naja insgesammt bin ich auf die Lösung nich wirklich stolz...
Is blöd jetzt jeden Einzelheit zu beschreiben... deshalb könnt ihr euch ja einfach mal das Bild anschauen. Ich denke dann wird das etwas verständlicher ;D.
284365d57a28cc27e261cb0f176e9aa4.jpg



Habt ihr irgendwelche Tipps wie ich das anders lösen könnte?
Hab schon so viel Probiert aber irgendwie hängts dann doch immer wieder ;D.
Wäre echt nett wenn ihr mir da tipps geben könnten was ich noch ausprobieren kann.
 
Falls ihr bei dem Bild nur ein Werbebanner seht... klickt auf diesen Link.
http://www.funpic.de/bilder/fotoalben/big/3/33/332191/284365d57a28cc27e261cb0f176e9aa4.jpg

Weis auch nicht warum aber werde da manchmal auf so ne andere Seite umgeleitet und man sieht nur nen Banner...
Wenn ich den Link in die Adresszeile kopiert habe, hat es aber bis jetzt immer funktioniert...
Also falls ihr nur nen Banner seht... einfach in ein neues Fenster einfügen und dann sollte es gehen...
 
Im prinzip brauche ich nur eine Idee wie ich anhand einem Anfangs und Enddaten ein Kalender Aufbauen kann. Das ganze muss hallt vom so aufgebaut sein das ich inerhalb dieser Übersicht Termine einfügen kann...
Alsomüsste im prinzip wie ne art Koordinatensystem aufgebaut sein.
Ne idee war z.B. jeden Tag einzeln zu zeichnen in der Schleife und das startdatum immer um einen Tag zu erhöhen bis es gleich dem Enddatum ist... so hätte ich dann schonmal das Grundgerüst...
Das problem hierbei wäre das ich im nachhinein nicht mehr genau ausmachen könnte wo welcher Tag ist... und auch die Farbliche abhebungen der Monate würde nicht mehr funktionieren.... Und hier liegt der Hund begraben. Habe irgendwie keine Ideen mehr wie ich das so hinbekomme das alles immer an die Richtige stelle gezeichnet wird... wie ich die verschiedenen Monate voneinander trennen kann... usw.
Die einzige funktionierende Möglichkeit die ich wie gesagt bis jetzt hatte war immer nur Komplette jahre zu zeichnen mit der breite 365 . Somit konnte ich hallt immer genau sagen wo was hin muss... Aber naja damit bin ich relativ unzufrieden...
Mir fehlt hallt irgendwie der logische Ansatz wie das zu realisieren ist... :cry:
Kenne mich auch leider mit der Calendar Klasse nich wirklich aus und hab keine Ahnung was da so alles möglich ist.
Daran könnte es auch liegen das mir nichts mehr ein fällt.
Ausprogrammieren sollte nicht die Schwierigkeit sein... Brauche nur ne nen Logischen Ansatz... .
Bin dankbar um jeden Tipp :roll:
 

AlArenal

Top Contributor
Die Lösung lautet MVC ;)

In bester alter Speghetti-Manier in irgendwelchen Schleifen was zu berechnen und direkt zu zeichnen (Berechnung der Datern am besten noch in der Zeichenroutine) bringt dich nicht weiter, weil sämtliche Informationen über das Gezeichnete nach dem Zeichnen im Grunde futsch sind.

Was du also brauchst ist ein Datenmodell (Model). Da hinein packst du deine Termine. Dann brauchst du einen View, der aus den Daten im Model eine Anzeige (deine SVG-Ausgabe) generiert. Dazu muss er einige Randbedingungen wissen (Start-, Enddatum). Evtl. macht im View der Einsatz von Renderern Sinn, die gewisse logische Bestandteile der SVG-Generierung kapseln (Anzeige von Tagen, Terminen, Monaten, ...). Randbedingungen kämen dann vom Controller.
 
Ja das ist egal ob nach dem Zeichnen alle Daten verlohren sind. Es geht nur um die einmalige Zeichnung des Kalenders mit den mitgegebenen Daten. Wenn das Servlet neu gestartet wird, soll es wieder bei 0 loslegen. Habe auch nicht den Anspruch das irgendwie zu speichern... Höchstens das gezeichnete SVG als JPG... aber ansonsten soll sogar nichts gespeichert werden

Habe bereits ein Datenmodell mit indem man verschiedene Termine aus einer Tabelle auswählen kann... und in Input Feldern das Start und Enddatum ausgewählt werden... via Button wird dann die URL zu meinem Servlet aufgerufen das die selektierten Daten übergibt.

Das Zeichnen des SVG's übernimmt das Servlet... es hat auch alle benötigten Daten... Das Problem liegt ist das mir die Idee fehlt wie ich die Zeichnung verwirklichen kann... Wie ich das Bild aufbaue...
Könnte vielleicht für jeden Monat eine integer variable machen z.B. Jan mit dem Wert 31. Feb mit dem Wert 28 usw.
dann könnte ich ja irgendwie versuchend ie Zeitspanne zwischen start und enddatum herauszufinden und die ganzen int werte zusammen rechnen... dann wüsste ich schonmal wie groß das fenster ist... wenn jetzt das startdatum der 18.jan ist dann ziehe ich hallt 18 Tage von 31 ab... somit könnte ich dann zumindest genau bestimmenw o meine werte hin sollen.
und ich wüsste auch wo ich die linien setze um die monate voneinander zu trennen.
Dazu müsste ich aber irgendwie schaffen die anzahl der MOnate die zwischen Start und Enddatum liegen heraus zu finden... hmmm wär ne möglichkeit aber das wäre n ziemlich großer aufwand und auch nicht so schön...
 

AlArenal

Top Contributor
Die Daten gehen nicht verloren, wenn du alles durchdacht aufbaust. Wenn ich in einer JTable klicke, bekomme ich ja auch raus, auf welches Daten-Objekt ich geklickt habe.

Oder nehmen wir mal etwas aus meinem Arbeitsalltag:
Eine Arbeitsfläche in der man Graphen darstellen kann, z.B. einen Workflow oder ein UML-Diagramm. Die Anzeige ist der View, die die Objekte im View stehen in einem Model und über entsprechende Methoden ist es immer möglich für eine beliebige Koordinate im View rauszufinden, was da für ein Objekte (oder mehrere Objekte) im Model stehen.... Aus Sicht des Views sind diese Objekte in seinem Model. Sie sind aber mglw. nur eine visuelle Repräsentation meiner eigentlichen Daten-Objekte, die nicht denen im Graph-Model entsprechen müssen.

Stelle ich im View z.B. ein Auto dar, habe ich vielleicht eine Klasse AutoNode im Model des View. AutoNode ist aber keine Repräsentation eines Autos, für das ich noch irgendwo die Klasse Auto habe...

Dabei haben die Koordinaten der AutoNode im Model nur indirekt etwas mit denen im View zu tun, weil der View skalieren kann und beim zeichnen entsprechend umrechnet. Eine solche Skalierung brauchst du ja für deinen Kram auch. Da musst du etwas Gehirnschmalz in die Abstrahierung investieren. Wenn AutoNode (wie jedes Objekt in dem Model) eine eigene #paint Methode hat, musst du zur Darstellung nur alle Objekte im Model durchlaufen, checken ob die Koordinaten im darstellenbaren Bereich liegen und sie von hinten nach vorne zeichnen lassen...

Vielleicht solltest du dir mal den internen Aufbau einer Graph-Lib anschauen. Ich schätze JGraph dürfte recht ähnlich funktionieren (ich selbst arbeite mit einem kommerzeillen Konkurrenzprodukt).. oder prefuse, dass sehr sehr clever designt ist.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
K Servlets Allgemeines EE 1
B Intellij + WebSphere, Servlets aufrufen Allgemeines EE 1
S JSP, JSF Servlets etc. Empfehlung Allgemeines EE 13
aze Eclipse Java EE Web Project:Wo liegen die Servlets ? Allgemeines EE 4
c_sidi90 Gute Bücher/Tutorials für Einstieg in JSP/Servlets Allgemeines EE 3
A Startseite bei Servlets Allgemeines EE 2
R Sourcen einbinden von J2EE bzw auch für Servlets in Eclipse Allgemeines EE 8
W Übliche Art "lokale" Parameter an Servlets zu über Allgemeines EE 2
D AJAX oder Servlets Allgemeines EE 6
J Sicherheit von Servlets Allgemeines EE 3
G Response bei Servlets Allgemeines EE 5
K Sriplets & Servlets: Offline Projekt auf Server realisie Allgemeines EE 2
M Servlets und Webcrawler Allgemeines EE 4
D JSP/Servlets Buchempfehlung Allgemeines EE 11
C Servlets in Eclipse ausführen Allgemeines EE 5
D Servlets richtig verstehen Allgemeines EE 23
A Servlets: Service-Methoden generell Allgemeines EE 2
I JBOSS IDE EJB 3.0 Servlets JSP Applikation --> JSF sinnvo Allgemeines EE 2
M Servlets | work - Klassen nicht im WAR File Allgemeines EE 5
J Bean in der init-Methode des Servlets instanzieren Allgemeines EE 9
T Servlets: doGet, doPost und service Allgemeines EE 4
M Hosting (inkl. Servlets) Allgemeines EE 25
P JSP Servlets/ Java Klassen für FTP FileUpload (Bilder) + DB Allgemeines EE 3
D Controller-Klassen eines Servlets testen mit JUnit Allgemeines EE 3
M Kommunikation zwischen zwei Servlets Allgemeines EE 5
S gibts ne spezielle möglichkeit applets mit servlets auszugeb Allgemeines EE 3
S aufrufende url bei servlets herausfinden Allgemeines EE 4
I Zusammenspiel Portlets, Servlets und JSPs Allgemeines EE 3
Z Property Datei in Servlets Allgemeines EE 2
S Fragen zu: Servlets, Struts & Hibernate Allgemeines EE 9
S Umlaute und Servlets Allgemeines EE 5
F Servlets und JSP Allgemeines EE 6
P E-mails alias über Servlets einrichten bei Strato- Allgemeines EE 16
G Verständnisfrage zu EJB vs. Servlets Allgemeines EE 3
A Servlets bei Tomcat-Startup starten Allgemeines EE 5
J Buchempfehlung: Servlets, JSP, Struts, JSTL Allgemeines EE 3
P Wie Log4J in JSP's, Beans und Servlets am besten einbinden Allgemeines EE 2
M Probleme beim Performancetuning des Servlets Allgemeines EE 2
C JSP funzt in Tomcat, Servlets nicht Allgemeines EE 5
G Servlets und Bilder Allgemeines EE 13
G JSP und Servlets (einfaches MVC-Modell) Allgemeines EE 2
G Mehrere Probleme mit Servlets/Java Allgemeines EE 15
T Grundlegendes Verständnis - Beans, JSP und Servlets Allgemeines EE 3
F Servlets aufrufen Allgemeines EE 5
thE_29 Allg. Frage zu JSP/Servlets Allgemeines EE 2
T Jsp die mehrere Servlets aufruft erzeugt Fehler Allgemeines EE 10
F relativer Pfad in Servlets für Dateien Allgemeines EE 2
R Servlets in ECLIPSE programmieren Allgemeines EE 3
X servlets und character encoding Allgemeines EE 4
A Frage zu Servlets Allgemeines EE 5
M Cookies mit Servlets Allgemeines EE 6
J Servlets und PrintWriter Allgemeines EE 5
H Servlets nacheinander abarbeiten Allgemeines EE 3
B Servlets werden gemappt --- aus und schluß, so ist es! Allgemeines EE 4
M Fragen zu Servlets Allgemeines EE 5
T Zwei Buttons in derselben FORM rufen unterschied. Servlets a Allgemeines EE 10
K Sun Application Server - Servlets laufen nicht Allgemeines EE 2
J Connectionpools mit BEA und Servlets Allgemeines EE 4
T Servlets und Dateizugriff auf dem Server Allgemeines EE 5
T Servlets in eclipse schreiben !! Allgemeines EE 5
S Servlets zum laufen bringen mit J2EE Allgemeines EE 3
A Leerzeilen in HTML-Seite, nach Erzeugen des Servlets Allgemeines EE 3

Ähnliche Java Themen

Neue Themen


Oben