Java Code Generator


Die spezifizierte Oberfläche kann mit dem Code Generator in Java verwandelt werden.
(Als Alternative können die Oberflächen-Scripte auch zur Laufzeit verwendet werden.)

Voraussetzungen:

Weiteres Vorgehen

Code Generieren

Das zu generierende Script ist in den GuiBuilder zu laden, und das Menü "Tools / Generate Java" zu betätigen.

Der generierte Code wird in dem Verzeichnis abgelegt, in dem auch die Spezifikationsdatei liegt.

Hinweis:
Um ein ganzes Projekt mit vielen Scripten zu generieren, können die Dateinamen der Spezifikation auch zeilenweise in eine Datei mit der Extension ".make" eingetragen werden. Wird dann diese Datei in den GuiBuilder geladen und der Code Generator aufgerufen, werden alle aufgeführten Scripte generiert.

Sollte bei der Generierung ein Fehler auftreten, kann auch das Debug-Flag gesetzt werden. Diese verlangsamt die Generierung aber erheblich.

Generierten Code compilieren

Der generierte Code ist in eine geeignete Entwicklungsumgebung zu laden und muß dort compiliert werden. Hierbei können u.U. weitere Fehler auftreten, und die Scripte müssen ggf. angepaßt werden (etwa wenn doppelte oder unzulässige Attribut-Namen vergeben wurden).

Compilierte Klassen prüfen.

Zur Überprüfung ein kleines Programm schreiben, welches alle generierten Formulare und Dialoge anzeigt. Hier ist zu prüfen, ob des Ergebnis dem gewünschten auch entspricht.

Der Code Generator sorgt dafür, daß wenn jetzt Ereignisse in der Oberfläche ausgelöst werden, dieses im Consol-Fenster angezeigt wird. Hier ist also zu prüfen, ob der alle Ereignisse wie gewünscht definiert sind.

Auf Benutzeraktionen reagieren

XXX TO DO

Code für JBuilder generieren

Ist der Einsatz des GuiBuilder eigenen Framewoks nicht gewünscht, kann auch Java-Code für den JBuilder generiert werden.

Da hier direkt die Swing-Klassen eingesetzt werden ist die Mächtigkeit des generierten Codes begrenzt und es muß entsprechend viel nachgearbeitet werden. Einige Elemente (Tree, Table) werden nur mit bescheidener Funktionalität generiert.

Code Generator für andere Sprachen implementieren

Der Codegenerator erzeugt je Schlüsselwort und Attribut entsprechenden Source-Code. Welcher Sourcecode generiert wird, ist in einer Steuerdatei für jede Klasse und für jedes Attribut eingetragen. Auf diese Art ist es im Prinzip möglich, auch andere Zielsprachen als Java zu generieren (C#, VB).

Erste Voraussetzung ist, daß eine Steuerdatei Components_<language>.def vorliegt. Im Verzeichnis GuiBuilder befinden sich bereits Steuerdateien für Java, JBuilder und HTML.

In dieser Datei muß die File-Extension für den zu generierenden Source-Code wie gewünscht angepaßt werden.
Siehe den Eintrag:
Extension=.java

Für jede zu generierenden Haupt-Container-Klasse muß gleichfalls eine Steuerdatei <class>_<language>.def vorliegen. Beispiele sind hier Form_java.def, Dialog_java.def.

Damit der Code-Generator aus der Oberfläche auch aufgerufen werden kann, ist das Oberflächen-Script für den GuiBuilder selbst entsprechend anzupassen (siehe im Verzeichnis GuiBuilder.xml).
Beispiel:

<Menu label="%Tools" >
<Item label="Generate %Java (GuiBuilder)" name="genJava" cmd="generate_Java" />
<Item label="Generate Java (J%Builder)" name="genJBuilder" cmd="generate_JBuilder" />
<Item label="Generate %C#" name="genC" cmd="generate_CSharp" />

<Item label="-" />

Die Steuerdateien müssen dann Components_csharp.def, Form_csharp.def usw. heißen.


Stand: 27.10.2001

home