InstantWeb-Generator

Der InstantWebGenerator erleichtert die Erstellung einer InstantWeb-Anwendung, indem es den Ersteller durch die notwendigen Schritte führt und diverse Arbeiten so weit wie möglich selbst durchführt. Syntaktische Fehler und falsche Links werden so vermieden.

Generell gilt: Aus einem InstantView®-Fenster werden 3 Dateien erzeugt:

Vorgehen

  1. Der InstantWeb-Generator lässt sich über die Message INSTANTWEB_GENERATOR aufrufen. Das Hauptfenster des Generators enthält eine Reihe von Eingabefeldern zur Konfiguration:

     

  2. Bevor der Generator loslegen kann, müssen die Fenster ausgewählt werden, die in eine InstantWeb-Anwendung konvertiert werden sollen. Der Button "1. Fenster wählen" öffnet ein weiteres Fenster:

  1. Zunächst werden alle Module zusammengesucht und geparst. Dieser Vorgang dauert einige Sekunden.
     
  2. Im oberen Drittel werden nun alle Module aufgelistet, die gefunden wurden. Durch Eingabe des Namens über die Tastatur kann zu einem bestimmten Modul gesprungen werden. Im nächsten Schritt werden alle Module und Fenster ausgewählt, die eine InstantWeb-Anwendung bilden sollen.
     
  3. Wählen Sie ein bestimmtes Modul mit der Maus aus. In der Liste "Fenster" links unterhalb der Modulliste werden nun alle Fenster aufgelistet, die in diesem Modul definiert sind. Ein einfacher Klick akualisiert die Liste der Widgets, die dieses Fenster besitzt. Diese Liste ist im unteren Drittel des Fenster zu finden. Ein Klick auf den Button "(Source)" öffnet Eclipse und lädt das entsprechende Modul.
     
  4. Wählen Sie nun das gewünschte Fenster aus und drücken Sie auf den Button "-->", um das Fenster in die Liste der Web-Fenster aufzunehmen. Ein Doppelklick führt zum selben Resultat. Der Button mit dem roten X löscht ein Fenster wieder aus der Liste. Es ist auch die gleichzeitige Auswahl mehrer Fenster möglich.
     
  5. Je nach Bedarf kann dem Fenster nun noch der Name der Start-Message mitgegeben werden. Die Start-Message ist die Message, die das Fenster öffnet. Normalerweise ist es nicht notwendig, diese Message anzugeben, denn ein Fenster wird i.d.R. von ClassiX® geöffnet und nicht über den Browser.
    Ein Beispiel: Das Loginfenster ist ein typischer Fall für ein Fenster, das initial vom Browser geöffnet werden muss. Der Benutzer gibt die URL in seinen Browser ein und erwartet, dass ClassiX® die angeforderte Seite öffnet und sie im Browser darstellt. Das InstantWeb-Interface weiß, welche URL zu welcher Seite gehört. Doch wie soll ClassiX® angewiesen werden, die Seite zu öffnen? Die Lösung ist eine Message, die getriggert wird und dadurch eine Seite öffnet. Genau diese Message wird hier als Start-Message bezeichnet, denn sie "startet" das Fenster.
    Wenn dagegen ClassiX® eine Seite öffnet, z.B. als Folge einer Menüauswahl, muss das InstantWeb-Interface die Message nicht kennen, denn ClassiX® hat die Seite bereits geöffnet und liefert nur noch die Daten des Fensters. Das InstantWeb-Interface muss, im Gegensatz zum Loginfenster, die Seite nicht öffnen.
    Wenn der Start-Message ein Stern (*) vorangestellt wird, so kennzeichnet dies das Fenster mit zugehöriger Message als Startpunkt für die gesamte InstantWeb-Anwendung (d.h. diese Message bzw. das Fenster darf auch ohne Login aufgerufen werden). Typischer Fall hierfür ist wieder die Login-Message.
     
  6. Für weitere Fenster wiederholen Sie die Schritte 5-7, ansonsten schließen Sie einfach das Fenster.
  7. Achtung! In der aktuellen Version des InstantWeb-Frameworks muss auch immer folgendes Fenster mit in die Anwendung eingefügt werden (wie im Screenshot gezeigt): Modul "GLOBAL" mit Fenster "ControlWin". Zusätzlich muss mindestens ein Fenster mit einer Start-Message als Einstiegsseite (also mit Sternchen) angegeben werden. Dies wird in den meisten Fällen ein Login-Fenster sein.
     
  8. Mit dem Button "Dateien erstellen" können nun automatisch alle ausgewählten Fenster in JSP-Seiten konvertiert werden. Gleichzeitig werden die entsprechenden Formulare und der Java-Code erzeugt. Das Ergebnis wird in Build\ unterhalb des InstantWeb-Verzeichnisses abgelegt.

     
  9. Bitte kopieren Sie nun weitere Dateien, die Sie zusätzlich brauchen (insbesondere Java-Code) ebenfalls in das neu erstellte InstantWeb\Build-Verzeichnis. Es steht Ihnen außerdem frei, Änderungen am Java-Code vorzunehmen.
     
  10. Der Button "Compilieren" übersetzt sämtlichen Java-Quellcode im Verzeichnis /com/classix/ in Java-Bytecode und erzeugt somit eine Reihe von .class-Dateien. Zur Kontrolle kann per Hand überprüft werden, ob die .class-Dateien wirklich erzeugt worden sind.
    Achtung!
    Hierfür muss das Java EE SDK installiert sein. [Wie geht das?]
     
  11. An dieser Stelle bietet sich die letzte Gelegenheit, weitere Dateien ins InstantWeb-Verzeichnis zu kopieren (weitere .html, .jsp-Seiten, Style sheets etc.) bzw. Anpassungen an den vorhanden Dateien vorzunehmen, damit diese im letzten Schritt mit ins .WAR-Archiv übernommen werden. Außerdem können jetzt noch die generierten JSP-Seiten überarbeitet werden. Statische Texte werden nicht in den JSP-Seiten abgelegt, da sie sprachabhängig sind. Sie sind in den .properties-Dateien im Unterverzeichnis WEB-INF/classes/com/classix/ zu finden. Die Texte können nach Belieben verändert werden.
    Ein wichtiger Parameter ist in der Datei WEB-INF/web.xml zu finden: Der Timeout für inaktive Benutzer (Zeitdauer, nach welcher ein inaktiver Benutzer automatisch ausgeloggt wird). Eine genaue Beschreibung hierzu und zu den anderen Parametern in web.xml findet sich hier.
     
  12. Mit dem Button ".WAR erstellen" werden abschließend alle Dateien im InstantWeb-Verzeichnis gepackt. Auf dem Webserver kann dieses Archiv nun mit dem Deploy-Vorgang installiert werden.
     
  13. Bei Bedarf kann nun das InstantWeb-Zielverzeichnis gelöscht werden, da alle Informationen in der .WAR-Datei vorhanden sind. Diese ist ein einfaches .zip-Archiv mit anderer Dateiendung, daher kann die .WAR-Datei bei Bedarf auch wieder ausgepackt werden um weitere Änderungen vorzunehmen.

Erläuterung der Schritte

Dieser Vorgang muss nicht immer von Anfang bis Ende durchgeführt werden, sondern es kann auch mit einem späteren Schritt "begonnen" werden bzw. ein Schritt kann wiederholt werden. Das ist dann sinnvoll, wenn z.B. ein Fehler in der InstantWeb-Anwendung festgestellt wurden und daher InstantView®-Code verändert wird oder einfach nur eine HTML-Seite in der .WAR-Datei fehlt. Es folgt eine Auflistung, welcher Button welche Arbeiten genau durchführt und wann übersprungen werden kann, vorausgesetzt, das InstantWeb-Zielverzeichnis ist noch vorhanden!

  1. Mit dem ersten Button werden nur die Fenster ausgewählt, die in eine InstantWeb-Anwendung konvertiert werden sollen. Dieser Schritt kann übersprungen werden, wenn sich

    Werden dagegen Kommentare verändert oder auch Koordinaten, kann die Auswahl der Fenster übersprungen werden.

  2. Mit dem zweiten Button werden die .JSP und .JAVA Dateien erstellt. Sollten sich Änderungen wie oben beschrieben im InstantView®-Code befinden, sind die Webseiten neu zu erzeugen. Ansonsten kann auch dieser Schritt übersprungen werden. Werden Widgets oder Fenster verändert, die sich im selben Modul befinden, aber selbst nicht ins Web konvertiert wurden, sollte vorsichtshalber dieser Schritt (zusammen mit Schritt 1) durchgeführt werden, da sich die Reihenfolge und damit die Benennung der Widgets geändert haben kann.
  3. Wurden Änderungen am Java-Code vorgenommen werden oder wurde Schritt 2 ausgeführt, muss der Code neu übersetzt werden. Ansonsten kann dieser Schritt ebenfalls übersprungen werden. Aber: Vermeiden Sie es, in Java zu programmieren! Auf keinen Fall darf die Logik des generierten Java-Codes verändert werden! Besser ist es, in InstantView® zu programmieren! 
  4. Vierter Schritt: Erstellen der .WAR-Datei. Dieser Schritt muss nach jeder Änderung ausgeführt werden:

Hinweise:
Der InstantWeb-Generator unterstützt die Mehrsprachigkeit von ClassiX® noch nicht vollständig. Der Generator ist auch für die Extraktion aller statischen Texte (z.B. Buttonbeschriftungen, Fenstertitel, ...) zuständig, allerdings funktioniert dies nur für die Sprachen Deutsch und Englisch zuverlässig. Weitere Sprachen werden nicht exportiert bzw. der Generator ist auf Französisch und Russisch beschränkt. Andere Sprachen als diese werden vom Generator nicht unterstützt. In der fertigen Webanwendung wird die Sprache anhand der vom Browser des Benutzers übermittelten gewünschten Sprache automatisch eingestellt. Dies bezieht sich jedoch auch nur auf die statischen Texte, es erfolgt zur Zeit noch keine automatische Sprachumstellung in ClassiX® selbst. Diese müsste vom Benutzer (bzw. der Webanwendung) manuell ausgelöst werden, damit auch dynamische Texte in der gewünschten Sprache angezeigt werden. Eine Sprachumstellung in ClassiX® hat jedoch keinerlei Auswirkungen auf die statischen Texte, d.h. wenn z.B. der Browser des Benutzers Englisch als präferierte Sprache übermittelt und der Benutzer die Sprache in ClassiX® manuell auf Spanisch stellt, dann erscheinen die statischen Texte in Englisch und die dynamischen Texte in Spanisch. Diese Probleme werden in einer zukünftigen Version von InstantWeb behoben sein.