[ Einführung ] [ Demo ] [ Screenshots ]
 

 

Einführung

Kontext

Das Adressbuch habe ich für mich und interessierte Benutzer geschrieben. Der Sourcecode ist nicht geheim und kann privat genutzt und weiterentwickelt werden.

Das Projekt ist in sourceforge.net unter der Gnu Public License (GPL) veröffentlicht.

SourceForge Logo

[ --> http://sourceforge.net/projects/addressapplet/ ]


Ich brauchte eine zentrale Stelle, mit der ich alle meine Kontakte verwalte. Bisher hatte ich meine Kontakte im handgeschriebenen Adressbüchlein und webbasierten Organizern wie freenet.de verwaltet. Das Adressbüchlein war meistens nicht mit auf Reisen, wenn ich es brauchte und die Weborganizer fand ich nie besonders komfortabel. Visto.com, wo ich meinen Account hatte, hat ohne große Vorwarnung dicht gemacht. Damit waren all meine Adressen und Mails, die ich dort gespeichert hatte weg. Dazu kam, dass ich zur eigenen Freude und zum Lernen einiges an einem sinnvollen Beispiel ausprobieren wollte.

Aufgabenstellung

Ich wollte ein Adressbuch mit folgenden Eigenschaften:
- Ortsunabhängig
- Neutrales Datenformat
- Volle Kontrolle über die Daten
  - Möglichkeiten zur Sicherung und zum Überschreiben
  - Ablage an einem eigenen Speicherort
- Import von anderen Adressbüchern
- Export der Daten in andere Adressbücher
- Gute Suchfunktionen
  - In einzelnen Feldern
  - Alle Daten nach einer beliebigen Zeichenkette
  - Neue Suche nach jedem eingegebenen Zeichen
- Verschiedene Ansichten auf die Daten
- Als Geburtstagskalender
- Einfaches Versenden von Mails (Kein E-Mail Client)

Lösung

Warum ein Applet?
Die Wahl fiel zwangsläufig auf eine Client basierte Variante, die im Webbrowser läuft. Ich kann in meinen Seiten nur statische Inhalte ablegen, da ich keine eigenen Programme auf dem Webserver laufen lassen kann, die dynamischen Inhalt ausliefern könnten wie z.B. JSP's. Zum Datenaustausch mit meiner Webseite (Webserver) habe ich einem FTP-Zugang. Die meisten Benutzer, die das Adressbuch in ihre Webseiten einfügen wollen, werden die gleichen Bedingungen haben. Das Adressbuch kann als Applet in einer Webseite oder als "normales" Progamm laufen. Der Webbrowser muss ein aktuelles Java Plug-In installiert haben. Das ist zwar Standard, hat aber nicht jeder Browser.

Wie werden die Ansichten erzeugt?
Die Anzeige der Daten des Adressbuches erfolgt in einem Textfeld. Das Textfeld wird mit HTML-Code gefüttert. Der HTML-Code wird mittels XSLT-Stylesheets aus einer XML-Datei erzeugt. Alle Daten des Adressbuches eines Benutzers sind in einer XML-Datei abgelegt. Für jede Ansicht (kurz, private, ...) gibt es ein Stylesheet. XML-Dateien und XSLT-Stylesheets werden über HTTP vom Webserver geladen. Die Stylesheets werden nach dem Laden in "Transformatoren" geladen, um später Zeit zu sparen. Die XML-Datei (Daten des Adressbuches) wird in ein DOM (Data Object Model) gelesen. Soll eine Ansicht erzeugt werden, wird als erstes das DOM nach übereinstimmenden Einträgen durchsucht (wenn erforderlich), die gefundenen Einträge in einem neuen DOM abgelegt und die Einträge in diesem DOM sortiert. Das sortierte DOM wird mit den "Transformatoren" (aus den XSLT-Stylesheets) in HTML-Code transformiert. Der HTML-Code durchläuft einige Filter, wenn nötig, und wird danach im Textfeld des Hauptfensters angezeigt. Die Anzeige durch das Textfeld nimmt überraschenderweise weitaus die meiste Zeit in Anspruch. Die verwendeten Packages sind xalan.jar und xerxes.jar

Wie werden die Daten gesichert?
Über FTP. Die Daten können auch hinter einer Firewall gesendet werden. Vor dem Sichern wird kontrolliert, ob die Anzeige nicht durch Sonderzeichen, die der Benutzer eingegeben hat blockiert wird. Das kostet Zeit, ist aber sicher. Die Transformation von XML mittels XSLT-Stylesheets in HTML reagiert sehr empfindlich. Das eingesetzte Package ist netcomponents.jar.

Was für Produkte werden zur Hilfe eingesetzt?
Ich habe ausschließlich Open Source Produkte eingesetzt: XML/XSLT mit xalan.jar und xerxes.jar, FTP durch netcomponents.jar, EMail durch mail.jar und activation.jar.

Kann das Applet nachträglich konfiguriert werden?
Ja. Das Applet kann über Parameter in der Webseite konfiguriert werden oder über eine Konfigdatei, die es immer gibt. Werte aus der Webseite überschreiben die Werte aus der Konfigdatei. Konfiguriert werden können Angaben zum Mailserver, zum FTP-Server (das Passwort ist leicht verschlüsselt), die Jahresspanne im Datumsdialog, die URL zur Datei mit bekannten Adressbuchformaten, die Größe des Hauptfensters. Die bekannten Adressbuchformate für die Importfunktion werden in einer Textdatei abgelegt und können damit einfach bearbeitet werden.

Demo

Sie können dieses Applet voll funktionsfähig ausprobieren. Ihr Browser muss ein Java Plug-In installiert haben. Zum Ausprobieren des Adressbuches klicken Sie bitte

[ --> zur Demo ] auf deutsch.
[ --> view Demo ] in English.
[ --> Start ] mit Java Webstart (Vorzugsvariante).

 

Screenshots

Start in der Webseite

Startseite

Ohne Kommentar.

 

Logon

login

Die Benutzerdaten werden in einer eigenen XML-Datei gehalten. Die Datei wird mit FTP geladen.

 

Menü "Book"

Menue Book

Ohne Kommentar.

 

Menü "Config --> Views"

Menue Views

Die Daten des Adressbuchs werden in einem Textfeld (JEditorPane) angezeigt. Dazu werden die Daten aus dem DOM (Data Object Model) mit Hilfe von XSLT-Stylesheets in HTML-Code umgewandelt, der dann durch das Textfeld dargestellt wird. Das Textfeld ist bei der Darstellung erstaunlich langsam, so dass bei größeren Datenmengen (z.B. alle Daten aller Kontakte werden angezeigt) Verzögerungen entstehen. Tatsächlich sind diese Verzögerungen weitaus gröer als die, die durch die Such- und Sortiervorgänge entstehen.

 

Menü "Config --> Search"

Menue Search

Es kann in verschiedenen Feldern gesucht werden. Im Textfeld "Search" kann man seinen Suchbegriff eingeben. Jedes neue Zeichen, das eingegeben wird, stößt eine neue Suche an. Gleichzeitig zur aktualisierten Darstellung der gefunden Kontakte im Hauptfenster werden die Einträge in der Drop Down Liste rechts neben dem Textfeld aktualisiert. In den meisten Fällen (Kontaktname, Vorname, Nachname, Firma, Geburtsmonat) wird ab dem ersten Zeichen im Eintrag des durchsuchten Feldes gesucht. Beispiel: Der Nachname "Meier" wird durch "Me", nicht aber durch "eie" gefunden. In zwei Fällen (Kommentar und Alles) wird nach einer beliebigen Zeichenkette gesucht. Beispiel: "Meier" wird durch "Me" und "eie" gefunden. Durch die Suche nach dem Geburtsmonat kann das Adressbuch als Geburtstagskalender benutzt werden.

 

Menü "Options --> Mode"

Menue Mode

Die Daten des Adressbuches werden mittels FTP auf dem Server gesichert. Mit diesem Menü können Sie zwischen "binary" oder "text" Mode von FTP wälen.

 

Menü "Options --> Save"

Menue Save

Die Daten des Adressbuches werden mittels FTP auf dem Server gesichert. Mit der Option Firewall wird der "passive mode" von FTP benutzt. Die Daten können damit auch hinter einer Firewall gesendet werden. Sie müssen auf ihrem Computer kein FTP installiert haben. Das Applet benutzt dazu das Package netcomponents.jar. Neben den Packages für die XML-Transformationen ein "Bremser" beim erstmaligen Starten des Applets, da diese Packages durch das Applet vom Server geladen werden.

 

Menü "Tools --> Notes"

Menue Tools

Das Transformieren der Adressbuchdaten in WAP-Seiten ist noch nicht umgesetzt. Hier kann man ebenfalls die Notizen öffnen.

 

Menü "Tools --> Backup"

Menue Backup

TODO: Die entscheidende Stelle fehlt noch im Screenshot - Hmm. Die Daten des Adressbuches und der Notizen können vom Server auf die lokale Festplatte geladen werden (Download). Anders herum können die Daten für Adressbuch und Notizen von der lokalen Festplatte vom Applet übernommen und auf den Server geschrieben werden (Upload). Das Applet hat von Haus aus keine Rechte zum Lesen oder Schreiben auf der lokalen Festplatte. Sie müssen dem Applet erst diese Rechte verleihen. Eine Anleitung findet sich in der Hilfe.

 

Menü "Help"

Menue Backup

Ohne Kommentar.

 

Dialog "Bearbeiten"/"Hinzufügen"

Edit Dialog

Dieser Dialog wird mit einem Klick auf einen Eintrag in der Drop Down Liste im Hauptfenster geöffnet. Das Geburtsdatum muss durch einen Datechooser gewäht werden, um ein einheitliches Format zu haben. Mails können auch versendet werden - nur hier, denn das Applet versteht sich nicht als Mail Client. Mit der Option "All" im Menü Config --> Views werden all diese Daten im Hauptfenster pro Kontakt angezeigt. Wie oben beschrieben braucht das Textfeld des Hauptfenster bei größeren Datenmengen (sagen wir 100 Einträgen) seine Zeit.

 

Auswahl des Geburtsdatums

Datumswahl

Die Spanne der Jahre in der Drop Down Liste kann auf der Webseite oder in der Konfigurationsdatei festgelegt werden. Die Angaben auf der Webseite haben Vorrang vor den Angaben aus der Konfigurationsdatei.

 

Export Dialog

Export Dialog

Mit diesem Dialog kann das Adressbuch exportiert werden. Was ist der Unterschied zum Format bei einem Download? Beim Download werden die Daten im XML-Format abgelegt. Beim Export wird, wie bei anderen Adressbüchern auch, ein anderes, einfacheres Format gewählt. Die Daten werden hier meist in einer Komma separierten Liste abgelegt. Mit den Radio Buttons können Sie eben dieses Format beeinflussen. Da das Applet von Haus aus keine Lese- oder Schreibrechte auf die lokale Festplatte hat, muss es die Rechte dazu verliehen bekommen. Eine Anleitung findet sich in der Hilfe. Die Rechtevergabe kann man umgehen, indem die Daten in das Textfeld exportiert werden. Von dort aus kann man die Daten durch einfaches Kopieren des Textes in den Zwischenspeicher legen und in einen Texteditor einfügen.

 

Export des Adressbuches in ein Textfeld

Export Dialog Textfeld

Die Rechtevergabe beim Export kann man umgehen, indem die Daten in das Textfeld exportiert werden. Von dort aus kann man die Daten durch einfaches Kopieren des Textes in den Zwischenspeicher legen und in einen Texteditor einfügen.

 

Import Dialog

Import Dialog

Mit diesem Dialog können Daten eines anderen Adressbuches importiert werden. Je nach Format dieser Daten kann der Import mit den Radio Buttons angepasst werden. Das Applet kennt Formate anderer Adressbücher wie Outlook Express oder KMail. Die importierte Datei kann auf der lokalen Festplatte liegen oder von einer URL aus dem Internet (oder lokalen Netzwerk) geladen werden. Zum Laden der Datei aus dem Internet braucht das Applet keine speziellen Rechte. Es ist ein einfacher HTTP-Download. Wird die Datei allerdings von der lokalen Festplatte geladen, braucht das Applet Rechte dafür, da die Festplatte Tabu für ein Applet ist. Eine Anleitung findet sich in der Hilfe.

 

Import Dialog mit bekannten Formaten

Import Dialog Formate

Das Applet kennt einige Formate. Wird ein Format ausgewählt, werden die Feldnamen in den Spaltenköpfen eingesetzt. Natürlich kann diese automatische Zuordnung korrigiert werden oder gleich manuell erfolgen. Die Zuordnung erfolgt dabei über die Drop Down Liste "Properties". Dazu wird eine Spalte durch Klick in eine Zelle der Spalte markiert und der Feldname (im Spaltenkopf dargestellt) über die Drop Down Liste "Properties" (Feldnamen) gewählt. Die Adressbuchformate werden aus einer Textdatei geladen und können somit einfach bearbeitet werden.

 

E-Mail Dialog

Mail Dialog

Hier können EMails versendet werden. Diese Funktion hat nicht den Anspruch, ein Mailprogramm nachzubauen. Es können einfache Textbotschaften ohne Anhang versendet werden. Mehrere Empfänger werden z.B. durch Leerzeichen oder Kommata getrennt. Zum Versenden nutzt das Applet die Packages mail.jar und activation.jar.

 

Download Dialog

Download Dialog

Anmerkungen siehe Screenshot "Menü Tools --> Backup". Trifft auf alle Downloads und Uploads zu.

 

Notizen

Notizen

Hier können beliebig viele Notizen abgespeichert werden. Die Daten werden in einer eigenen Datei gesichert.

 

Kurzansicht

Kurzansicht

Hier wird eine Auswahl der Daten gezeigt, die ich für wichtig befunden habe: Name des Eintrags, Vorname, Nachname, private und geschäftliche Telefonnummern private und geschäftliche Mail, Geburtsdatum.

 

Ausfürliche Ansicht

All View

Hier werden alle Daten pro Kontakt angezeigt.

 

Private Ansicht

All View

Hier werden alle privaten Daten pro Kontakt angezeigt.

 

Minimale Ansicht

Minimal View

Hier wird nur der Name des Eintrags gezeigt.

 

Hilfe

Help

Unter Windows sieht diese Seite wesentlich besser aus. Todo: Schriftart ändern.

 

System Info

System Info

Unter Windows sieht diese Seite wesentlich besser aus. Todo: Schriftart ändern.