Archiv der Kategorie: Projekte

[AMS] Aufhören oder weiter machen?

Gestern Abend hatte ich mal wieder Lust an meinem alten AMS-Projekt weiter zu coden. Dabei sind mir ein paar Sachen aufgefallen, die so nicht in einem Projekt sein sollten. Die Planung ist schlecht, der Code könnte auch komplett überarbeitet werden, das Projekt Wiki ist noch fast leer und noch kein Release seit zwei Jahren..

Entweder ich lege dieses Projekt komplett auf Eis und benutze es nur noch als Spielwiese um neue Technologien aus zu probieren oder ich setze mich einen Abend hin und starte die Planung von neu, um wenigstens ein minimal Release zu erstellen. Ich geh rein positiv erstmal vom letzteren aus.

Veröffentlicht unter AMS, Projekte | Verschlagwortet mit , , , , , | Hinterlasse einen Kommentar

AMS auch auf developia.de zu finden

Tach zusammen,

vor paar Tagen habe ich mein AMS Projekt auf developia eingestellt. Dort könnt ihr u.a auch den Entwicklungsstand einsehen und evtl. Kommentare abgeben. Wird jetzt nur noch Zeit, dass das erste Release raus kommt. Wird aber wohl wegen meiner Abschlussprüfung ne Weile dauern, denk ich ^^

Link:
AMS auf developa.de

Veröffentlicht unter AMS, News, Projekte | Verschlagwortet mit , , , , , , , , | Hinterlasse einen Kommentar

[AMS] #2 refactoring, neue Funktionen implementiert

So, es ist schon etwas zu lange her, dass ich etwas über mein Adress Management System (ams) Projekt geschrieben habe. Ich muss gestehen, dass seit dem letzten Eintrag im Projekttagebuch die Entwicklung etwas ins Stocken geraten ist. Ich hatte kaum Zeit und meine Motivation war in letzter Zeit auch nicht die beste aber das nur nebenbei erwähnt.

In diesem Eintrag habe ich beschrieben was AMS ist und was ich bisher an Funktionalitäten implementiert habe. Bei Interesse könnt ihr es euch durch lesen. Bilder und bissl Code von AMS findet ihr auch im letzten Projekt Beitrag.

Refactoring
Die GUI ist immer noch nicht ganz fertig. Es fehlen noch 2 wichtige Dialoge und die Funktionalität im Menü. Doch bevor ich diese Sachen fertig implementiere muss ich den gesammten Code noch ordentlich refactoren. Wie ich sehe habe ich noch einiges an Mist im Code stehen, den man auch anders bzw. besser implementieren kann. Das wird, denk ich, ein paar Stunden dauern. Einen Teil habe ich heute schon geändert.

Ich habe für jeden Adress-Dialog Typ eine eigene Klasse erstellt, die sämtliche Widgets für die einzelnen Felder enthält und eine Klasse, die alles zusammen baut. Allerdings ist mir danach klar geworden, dass es bestimmt einen besseren generischen Weg geben muss, um GUI Elemente wie z.B Labels und Textfelder in Kombination wieder zu verwenden. Nur müsste ich mir überlegen wie ich die einzelnen Input Felder individuell ansprechen muss. Wenn ihr ein gutes Beispiel für so einen Fall habt, immer her damit ^^

Suche
Einzelne Adressen lassen sich nun auch bearbeiten und ein Teil der Suche funktioniert auch schon. Dabei ist mir aufgefallen, dass man ja vllt auch nur nach einem Vornamen oder einem Nachnamen suchen möchte. Jetzt funktioniert die Suche so, dass ihr einen vollen Namen in das Suchfeld eingeben müsst um eine einzelne Adresse zu finden. Wollt ihr mehrere Adressen mit den selben Vor – oder Nachnamen haben, wird es eine Tabelle geben, die diese auflistet. Das muss ich allerdings noch implementieren. Als Quelle der Suche verwende ich nicht die generierte XML-Datei. Sollte ich irgendwann auf die Idee kommen noch andere Formate zur Speicherung der Adressen zu verwenden, wär dieser Weg bissl doof. Statt dessen wird das interne Datenmodell durchsucht.

neue Tabellen Ansicht
Des weiteren implementiere ich noch eine neue Tabellen Ansicht. Diese Ansicht erscheint, wenn ihr das Programm startet und wird nach meiner Planung alle vorhandenen Adressen anzeigen. Mit einem Doppelklick auf eine Adresse erhaltet ihr eine Übersicht der Adresse.

So, ich denke, das war das wesentliche was es zu berichten gibt. Ich hoffe, dass mein nächster Projekttagebuch Eintrag nicht so lange auf sich warten lässt. Quellcode gibt es hier dieses mal nicht zu sehen. Dafür ist er noch nicht so spannend und größere Probleme bei der Implementierung gab es bisher noch nicht. Wenn die aufgelisteten Funktionalitäten implementiert sind, wird es das erste Release von AMS geben. Ich freu mich drauf ^^

Links
AMS – Projekt Site

Veröffentlicht unter AMS, Java, Projekte | Verschlagwortet mit , , , , , , , , | Hinterlasse einen Kommentar

neues Projekt – Sammelsorium für Gedichte

Da heute Sonntag ist und ich heute Mittag nicht wirklich wusste was ich mit meiner Zeit anfangen sollte, kam mir einfach die Idee ein altes Projekt von mir mit neuem Leben zu füllen.

Dabei handelt es sich um eine schlichte Webseite für meine ganzen Gedichte, Geschichten usw. Dient lediglich nur als Sammelhomepage und hat auch kein atemberaubendes Design. Bin ja auch kein Webdesigner ^^

hier ein kleines Bild:


Sammelsorium für meine Gedichte

Sammelsorium für meine Gedichte


Link: Webseite

Den Link zur Website findet ihr auch im Blog Link Menü ^^ Schönen Rest Sonntag :-)

Veröffentlicht unter News, Projekte | Verschlagwortet mit , , , , , , , | Hinterlasse einen Kommentar

[AMS] – Eröffnung des Projekttagebuchs

Ich hatte das eigentlich schon länger vor aber ich kam bis jetzt noch nicht dazu. Im Januar habe ich geschrieben, dass ich ein Projekt gestartet habe, womit es dem Benutzer möglich ist seine gesammten Adressen in einem Programm zu verwalten.

Der weitere Sinn hinter diesem Projekt ist es, dass ich meine Java Fertigkeiten verbessern möchte bzw neue erlernen will. In diesem Projekttagebuch werde ich in gewissen Abständen über den Status von AMS berichten. Screen´s oder auch Code Schnipsel sind nicht ausgeschloßen ^^

Fangen wir mal an… Die GUI von AMS ist beinah fertig.


ams - übersicht, klicken zum vergrößern

Das ist der Hauptdialog von AMS. Wenn ihr das Bild genauer betrachten wollt, müsst ihr nur drauf klicken ^^ Ich habe die GUI in 5 wesentliche Teile aufgeteilt. Links oben erkennt man das Suchfeld. Mit diesem Feld soll es möglich sein, dass der Benutzer gezielt nach einer Adresse suchen kann. Unter dem Suchfeld befindet sich ein Verzeichnisbaum. Im Bild erkennt man aber nur den Wurzel Knoten. Dort kannt der Benutzer manuell nach bestimmten Adressen suchen ^^

Ganz oben erkennt man ein kleines Menü. Auf der rechten Seite befindet sich der Hauptdialog. Dieser dient lediglich dafür neue Adressen anzulegen und ist jeweils in drei Tabs unterteilt. Unter dem Hauptdialog befindet sich dann noch die Navigation des Programmes ^^

Bisher funktioniert aber noch nicht die gesammte GUI. Das Suchfeld, das Hauptmenü und die beiden Tabs “Geschäftliche Addresse und Sonstiges” müssen noch implementiert werden. Außerdem muss ich noch eine Funktion einbauen, die die Adress-Daten anzeigt, wenn der Benutzer im Baum auf ein Element klickt, eine Funktion, die Adressen löschen kann und eine, die das Bearbeiten von Adressen ermöglicht. Viel zu tun ^^ Exception handling muss ich auch noch machen. Ja gut, sollte man eigentlich direkt am Anfang machen, ja ich weiß.. Wenn das alles fertig ist, kann ich ein Beta Release bauen.

Das schwierigste bisher war das speichern von neuen Adressen und die direkte Aktualisierung des Baumes, wenn eine Adresse gespeichert worden ist.


ams_new_address

In dem zweiten Bild, habe ich ein paar Test daten eingefügt um zu demonstrieren, dass der Baum aktualisiert wird, wenn man eine neue Adresse anlegt. Dabei habe ich mir gedacht, dass der linke Baum so aufgebaut wird, dass alle Nachnamen als oberstes Element dargestellt werden und zu jedem Nachname die verschiedenen Vornamen hinzugefügt werden. So ist es einfacher und schneller eine Adresse zu finden und sieht besser aus ^^ Der Baum ist außerdem so aufgebaut, dass er automatisch erkennt wo die Adressen hin gehören. Dafür müssen das Feld Vor und Nachname zu einem Pflichtfeld werden. Sonst klappt die Zuordnung nicht.

Die Adressen werden bis jetzt als XML Format gespeichert. Weitere Formate stehen noch offen.

Ein Beispiel:
Show ▼

An diesem Beispiel kann man deutlich erkennen wie das gesammte Datenmodell aufgebaut ist. alle Adressen werden in Vorname und Nachname unterteilt um die obige beschriebene Funktionalität zu gewährleisten.

Wird das Programm beendet und neu gestartet, wird die vorige erzeugte XML Datei automatisch eingelesen und der Baum mit dem Inhalt aktualisiert. Wobei mir da grad noch einfällt, dass ich den Pfad zu der XML Datei konfigurierbar machen muss oO naja ne Kleinigkeit ^^

Für das erzeugen der XML Datei habe ich JAXB verwendet. Hier mal die Klasse, die das bei mir regelt:
Show ▼

Sieht eigentlich ziemlich simpel aus. Nur musste ich bei der serialize Methode von der Zeile 16 bis 19 noch eine Abfrage einbauen. Dort frage ich ab, ob schon eine XML Datei mit den Adressen existiert, wenn nicht mach ne neue, wenn ja, dann benutz die alten + neuen Daten und überschreibe die vorhandene XML Datei.^^

Hier noch die Methoden, die ich geschrieben habe um das Datenmodell zu aktualisieren. Dieser Part hat irgendwie am längsten gedauert..
Show ▼

In Zeile 4 muss ich erst prüfen, ob Adressen im Datenmodell vorhanden sind. Ist das nicht der Fall wird in Zeile 22 die Methode createNewAddresses() aufgerufen um eine neue Adresse zu erzeugen. Sind Adressen vorhanden wird in Zeile 6 über alle Nachnamen iteriert. Danach wird in Zeile 8 geprüft, ob der eingebene Nachname bereits im Datenmodell vorhanden ist. Ist dieser vorhanden wird in den Zeilen bis zum else Zweig die neue Adresse unter diesem Nachnamen erzeugt.

Sollte der Nachname aber nicht vorhanden sein, muss ein neuer erzeugt werden wo anschließend die neue Adresse gespeichert werden kann. Dies erfolgt von der Zeile 18 bis 20. Wieder wird die Methode createNewAddresses() in Zeile 19 aufgerufen.

Ich Übergebe der Methode createNewAddresses() einen boolean Parameter. Dies hat den folgenden Grund. Ich hatte beim aktualisieren des Datenmodelles das Problem, dass alle Einträge doppelt erschienen sind. Ich muss beim aktualiseren des Modelles immer prüfen, ob schon Nachnamen vorhanden sind. Sind keine vorhanden werden in Zeile 31 einfach neue angelegt. Sind welche vorhanden werden in Zeile 33 die aktuellen Nachnamen geholt und damit weiter gearbeitet ^^

So, ich denke, dass für den ersten Projekttagebuch Eintrag genug Informationen sind. Ich freue mich schon auf den nächsten Eintrag und auf den ersten Release von AMS, der in paar Wochen erfolgen wird :-)

Vielen Dank fürs durch lesen. Kommentare sind gerne gesehen ^^

Veröffentlicht unter AMS, Java, Projekte | Verschlagwortet mit , , , , , , , , | Hinterlasse einen Kommentar