Seiten

Freitag, 28. Januar 2011

Java 0.0.1 28.1.2011

Heute war der erste Tag für die Entwicklung unseres eMail-Support-Surveillance-Tools. Einen Großteil des Tages verbrachte ich zusammen mit meinem Ausbilder Sebastian damit, die wunderbare Entwicklungsumgebung Eclipse Helios zu installieren und gangbar zu machen. Probleme bereitete dabei das Visual Editor Plugin.

Wer schon einmal eine GUI in Java programmiert hat ( oder es zumindest wie ich versuchte ) der wird feststellen, dass es eine Menge schreibarbeit ist, die wirklich keinen spass macht (mir jedenfalls). Zusätzlich zu der erzeugten Textwüste auf dem Bildschirm gibt es erst ein Oberflächen Feedback, wenn man das ganze Gerät fehlerfei gecodet hat und ausführt.
Abhilfe dabei gibt das Visual Editor Plugin für Eclipse. Es ermöglicht eine Darstellung der Maske in einem Teil des Editors und zeigt darin die verwendeten Elemente und deren Position an. Ich finde das fast unverzichtbar. Da ich inzwischen auch noch den Luxus von Visual Studio gewöhnt bin, wo man die Elemente passgenau einsetzen und einfach verschieben kann ( selbstverständlich NOCH einfacher, komfortabler und sicherer als in Helios ) könnte ich mich wohl nur mit großen Überwindungen zum reinen GUI-Coding durchkämpfen.

Nunja, nach einiger Zeit des Probierens ( eine ältere Version des Visual-Editors brachte den Durchbruch ) konnten wir dann mit der Implementierung beginnen.
Zuerst wurde die Maske erzeugt und die Datenbankanbindung geschrieben. Ich habe mich dann den Abend lang damit befasst einen Timer zu schreiben, was sich doch als schwieriger darstellte und man sollte sich ein wenig mit Threading auskennen. Als der dann auch lief musste ich feststellen, dass ich nicht weiß, wie ich Attribute der GUI zur Laufzeit ändern kann...   das muss jetzt ein bisschen warten.

Donnerstag, 27. Januar 2011

OXID "Modulentwicklung" IV - 26.1.2011

Heute habe ich mich den ganzen Tag mit der Entwicklung unserer Voucher - Gutscheintools befasst.

Ich habe immer noch keine Ahnung, wie der shop seinen Parametertransfer vornimmt. Es funktioniert im Moment nur die Ausgabe der voucherdaten.
Einmal Festgehalten: Es wurden bis jetzt 3 Klassen mit den zugehörigen .tpl Dateien geschrieben.
Ersteinmal eine voucher.php und eine voucher.tpl. Diese Klassen dienen legilich als Basis für das Modul. Sie bekommen einen Eintrag in die Menu.xml um das Modul anzeigen zu können. Die Syntax muss natürlich an die Vorgaben passen. Wir erzeugten hierbei keine neue Superkategorie, sondern nur einen weiteren Eintrag bei den Shopsettings (deutsch: Shopeinstellungen).

id="mxvouchers" cl="voucherserie" 
  
die id kann frei vergeben werden, dient der Orientierung und wird später durch die Smarty-Engine in der entsprechenden Sprache ausgegeben.

list="voucherserie_list"

Wird an den oben angegebene Teil angefügt und bildet damit den  Eintrag in der menu.xml.

Alle Menüpunkte rufen ein Frameset auf, dass die Anzeige in zwei Teile teilt. Im oberen teil wird normalerweise die Liste angezeit: list="voucherserie_list", im unteren Teil die eigentliche Editierungsansicht.

Die hier angezeigte Klasse bzw Template wird dann in Menu.xml in der zeile darunter unter dem Keyword
angezeigt.
id="tbclvouchercodes_main ist dann die Bezeichnung des Bottom Frame, die ebenfalls von Smarty in der Entsprechenden Sprache angepasst ausgegeben wird.

PS: Textfarbgebung  in diesem Editor ist ein Alptraum!

Montag, 24. Januar 2011

Oxid Entwicklung 24-1-2011

Heute war ein sehr erfolgreicher Montag, was die Weiterentwicklung des Oxid Moduls angeht. Meinem Ausbilder ist bei der Struktur des menu.xml, welches die Einträge des Hauptmenüs festlegt aufgefallen, dass für jeden Unterpunkt nicht nur eine .tpl und .php Datei benötigt wird (zusätzlich zum Eintrag des Menüpunktes) sondern auch eine Hauptklasse, welche den gesamten Eintrag strukturiert.

Jeder Eintrag besteht somit aus mindestens 3 Klassen:
  • eine Basisklasse, welche den Eintrag Groß überschreibt und die Form der beiden Später angezeigten Frames vorgibt ( jede Seite Besteht aus einem Top - und einem Bottom - Frame )
  • eine List - Klasse, welche im oberen Frame angezeigt wird und welche die Navigationsstruktur und Suchfunktionen enthält
  • dem Bottom - Frame, in dem die eigentlichen Bearbeitungen vorgenommen werden.
Es war tatsächlich so, dass alle diese Strukturelemente vorhanden sein müssen, damit die vorgefertigte JavaScript - Methode welche einen Alert ausgibt (wollen Sie diesen Eintrag wirklich löschen...) aufgerufen wird. Zu meinem Glück konnte ich durch das einfache Löschen der überladenen Delete-Methode dafür sorgen, dass einzelne Zeilen aus der Datenbank gelöscht werden.
Das nächste Hauptziel ist es, eine Methode zu schreiben, welche die Daten der Zeile vor dem Löschen in eine weitere Tabelle schreibt. Dies ist evtl. leichter als gedacht, da sich die Notwendigen Informationen bereits in den Template-Variablem befinden und einfach nur zurückgeschrieben werden müssen.

Auf gutes Gelingen hoffe ich natürlich weiterhin.