> Inhalt: JavaScout-Fat-Client-Framework (JS-FCF) 

Tutorial: Programmierung mit dem JS-FCF 

Tutorial:
JavaScout ProjectAssist, Start-Frame Finalisierung (Java_Fatclient_01) –
Einbindung von Funktionstasten

* Bitte beachten Sie die Hinweise und Bestimmungen bezüglich Urheberrecht, Haftungsausschluß und geschützte Marken oder Warenzeichen die für dieses Web-Dokument und möglicherweise auch für 'verlinkte' Dokumente gelten.

  • Der Betreiber dieser Web-Site (www.javascout.biz) ist nicht verantwortlich für den Inhalt von Web-Sites, die innerhalb dieses Web-Dokumentes oder anderer Dokumente von www.javascout.biz verlinkt sind.

  • Wenn dieses Web-Dokument oder andere Dokumente dieser Web-Site (www.javascout.biz) Rechte von Ihnen verletzen, oder sie glauben, daß Rechte Anderer (Dritter Personen) dadurch verletzt werden, informieren Sie bitte den Betreiber dieser Web-Site.
    Eine E-Mail können Sie ganz einfach durch anklicken des Symbols oder Textes im Frame rechts oben senden.

Dieses Dokument drucken.

 Letzte Bearbeitung dieses  Dokuments:
2008-03-14



Voraussetzungen für das Verständnis dieses Dokuments:

Grundkenntnisse in der Programmierung von Java (Klassen, Methoden, Schleifen) oder anderer Objekt-Orientierter Programmiersprachen (z.B. C++, Modula-2, Pascal).

Tutorial Datenbank-Ladeprogramm mit Graphischer Benutzeroberfläche (Java_Intro_02) durchgearbeitet.

Ungefährer Zeitbedarf zum Durcharbeiten dieses Dokuments:

Arbeitszeit:
Ca. 20 bis 60 Minuten; abhängig von der bei den vorigen Beispielen erworbenen Routine
.

Dieses Dokument beschreibt, wie Funktionstasten (F1 – F12 mit Modifikatoren 'Alt', 'Ums' und 'Strg'/'Ctrl') dazu verwendet werden um Maus-Klicks auf 'Schaltflächen' zu simulieren.
Die Zuordnung zwischen Funktionstasten der Tastatur und Schaltflächen erfolgt durch eine Datei mit XML-Struktur.

Weiters wird die 'Schaltfläche' [ Weiter ] als jene Schaltfläche definiert, auf der auch durch die Taste 'Eingabe' ('Enter') ein Mausklick simuliert wird.

Inhaltsverzeichnis:

Voriger Schritt: Auswählen der Geschäftsanwendung 

Vorbemerkung 
Vorbedingungen 
Verweis auf Theorie 
Zusätzlicher Code 
* XML-Struktur für Funktionstasten-Zuordnung konstruieren
 
* Verschiedene 'Listener' zu den GUI-Elementen hinzufügen
 
* Festlegen der Schaltfläche die durch die 'Eingabe'-Taste betätigt wird
 
Datei mit der XML-Struktur mit der Funktionstasten-Zuordnung erstellen 
Verzeichnis GRAPHICS erstellen und ein Symbol abspeichern 
Layout in der Datei 'DisplayStrings.xml' erweitern 
Test 
Gesamter Code am Ende des Schrittes 
* Klasse
JS_ProjAssist_CommandCenter 
* Klasse
JS_ProjAssist_CommandCenter__ActionHandler 
Weitere Schritte und verwandte Dokumentation 

Nächster Schritt: Letzte Feinheiten 

Vorbemerkung

Obwohl Eclipse in 'deutscher Version' installiert werden kann, sind die Abbildungen in diesem Dokument mit der 'english Version' erstellt.
Grund ist, daß zum Zeitpunkt der Erstellung dieses Dokumentes (Oktober 2007) die Eclipse-Texte nur sehr unvollständig ins Deutsche übersetzt sind.
Damit ist (meiner Meinung nach)
1.) Eclipse in deutscher Version wesentlich schwerer verständlich als in englischer Version und
2.) wenn Eclipse weiter übersetzt wird, ist dieses Dokument stark abweichend von den dann vorhandenen deutschen Texten.



zum Inhaltsverzeichnis

Vorbedingungen:

zum Inhaltsverzeichnis

Verweis auf Theorie:

zum Inhaltsverzeichnis

Zusätzlicher Code

Im zusätzlichen Code wird die XML-Struktur für die Zuordnung von Funktionstasten (der Tastatur) zu Schaltflächen (Buttons) 'konstruiert'.

XML-Struktur für Funktionstasten-Zuordnung konstruieren

/* 
 * Methode mit den Initialisierungen die notwendig sind nachdem das Frame (Window)
 * angezeigt wird. */

    
private void initialize_after_frame() {
/* 
 * 'Construct' der XML-Struktur mit der Zuordnung der Funktionstasten zu den Buttons
 * (Schaltflächen).
 * Im Constructor wird die XML-Struktur aus der Datei 'FunctionKeys.xml'
 * im Verzeichnis 'TEXT.ls' gelesen wobei 'ls' der ISO-Code der gewählten Sprache
 * (als Parameter der Methode 'main' mitgegeben) ist. */

      
structJSBS_XML_FunctionKeys =
                 
new JSBS_XML_FunctionKeys(structJSBS_UniversalParameters);
/* 
 * Prüfen ob die XML-Struktur fehlerfrei gelesen werden konnte. */

      
if (structJSBS_XML_FunctionKeys.StatusCode != structJSBS_XML_FunctionKeys.CONST_OK) {
/* Fehler beim Einlesen der XML-Struktur.
 * Nachdem die GUI bereits initialisiert ist wird die Graphische Warnungs- und Fehleranzeige
 * benutzt. */

           handleErrorEvent(
this.getClass().getName(), "construct_JSBS_XML_FunctionKeys",
                 (
new Integer(structJSBS_XML_FunctionKeys.StatusCode)).toString());
/* Über die Methode 'handleErrorEvent' wird das Programm auch beendet. */
      }
/* 
 * Methode aufrufen mit der alle (in der Datei 'DisplayStrings.xml' definierten)
 * GUI-Elemente mit Text, Font und ToolTipText versehen werden. */

      JSBS_GUIServices.processLanguageDependantElements(
this);
. . . . . .
. . . . . .

Das 'Construct' für die Struktur enthält umfangreichen Code in den Basisklassen.
Darin wird die Datei gelesen und die darin enthaltene XML-Struktur in die Variable übertragen.

Im StatusCode von structJSBS_XML_FunctionKeys sind etwaige Fehler enthalten die beim Öffnen der Datei oder beim Einlesen der XML-Struktur aufgetreten sind.
Ob ein Fehler aufgetreten ist, wird anschließend an das 'construct' über den
StatusCode abgefragt.
Die Fehler-Codes sind in der Java-Interface JSBS_XML_Constants definiert.
Die Application hat zu diesem Zeitpunkt bereits eine Graphische Benutzeroberfläche. Damit kann die Methode
handleErrorEvent(. . .) aufgerufen werden die auch das Programm beendet.

zum Inhaltsverzeichnis

Verschiedene 'Listener' zu den GUI-Elementen hinzufügen

/* 
 * Methode mit den Initialisierungen die notwendig sind nachdem das Frame (Window)
 * angezeigt wird. */

    
private void initialize_after_frame() {
/* 
. . . . . .
. . . . . .

 * Methode in den Basisklassen aufgerufen und der Code der wählbaren Geschäftsanwendung
 * oder die Nummer der geöffneten Geschäftsanwendung auf das JTextField für die
 * Auswahl (txt_Code) übertragen. */

      get_tree_SelectableTasks().addMouseListener(
this);
      get_pnl_OpenTasksTable().addMouseListener(
this);
/*
 * Verschiedene 'Listener's zu den GUI-Elementen hinzufügen
 * Dazu die rekursive Methode der Basisklasse verwendet. */

      addListeners(
this, null);
/*
 * Methode zur Definition einer Schaltfläche als 'Default-Button'.
 * Mit der Enter-Taste (Keyboard) wird auf diesen Button ein 'Klick' ausgelöst. */

      setEnterTriggeredButton(get_btn_Continue());
    }
/*
 * Methode main(); diese macht diese Klasse 'startbar'.

Diese Methode aus der Basisklasse durchsucht die GUI rekursiv und fügt zu den entsprechenden GUI-Elementen passende 'Listener' hinzu.
Durch 'Listener' werden bei zugehörigen 'Events' (z.B. ein Tastendruck auf der Tastatur oder ein Mausklick auf das GUI-Element) definierte Methoden aufgerufen. In diesen Methoden kann dann codiert werden, welche Aktion das Programm bei Auftreten des entsprechenden 'Events' ausführen soll.

Eine weitergehende Erläuterung würde den Umfang dieses Tutorials sprengen; die Methode addListeners(. . .) und die Behandlung verschiedener 'Events' ist in der Basisklasse JSBS_StartFrame enthalten.

Der Parameter mit dem übergebenen Wert null beim Aufruf der Methode addListeners(this, null) ist für das Übergeben eines 'DocumentListeners' vorgesehen.
Ein 'DocumentListener' ist eine eigene Klasse für die Verarbeitung von Änderungen der Werte in Eingabefeldern und wird im nächsten Schritt vorgestellt.

zum Inhaltsverzeichnis

Festlegen der Schaltfläche die durch die 'Eingabe'-Taste betätigt wird

/* 
 * Methode mit den Initialisierungen die notwendig sind nachdem das Frame (Window)
 * angezeigt wird. */

    
private void initialize_after_frame() {
/* 
. . . . . .
. . . . . .

 * Methode in den Basisklassen aufgerufen und der Code der wählbaren Geschäftsanwendung
 * oder die Nummer der geöffneten Geschäftsanwendung auf das JTextField für die
 * Auswahl (txt_Code) übertragen. */

      get_tree_SelectableTasks().addMouseListener(
this);
      get_pnl_OpenTasksTable().addMouseListener(
this);
/*
 * Verschiedene 'Listener's zu den GUI-Elementen hinzufügen
 * Dazu die rekursive Methode der Basisklasse verwendet. */

      addListeners(
this, null);
/*
 * Methode zur Definition einer Schaltfläche als 'Default-Button'.
 * Mit der Enter-Taste (Keyboard) wird auf diesen Button ein 'Klick' ausgelöst. */

      setEnterTriggeredButton(get_btn_Continue());
    }
/*
 * Methode main(); diese macht diese Klasse 'startbar'.

Diese Methode aus der Basisklasse füllt eine Variable mit dem als Parameter übergebenen 'JButton'.
Wenn die 'Eingabe'-Taste der Tastatur betätigt wird, wird über eine weitere Methode der Basisklasse ein 'Mausklick' auf diesen 'JButton' simuliert.

zum Inhaltsverzeichnis

Datei mit der XML-Struktur mit der Funktionstasten-Zuordnung erstellen

Das Erstellen von Dateien wurde bereits in Schritt 3: Text für die GUI-Elemente von XML-Datei einlesen > Verzeichnis und Datei mit der XML-Struktur mit den sprachabhängigen Texten erstellen mit Abbildungen dokumentiert.
Bitte sehen Sie dort nach wenn sie sich mit den folgenden Kurz-Anleitungen nicht ausreichend informiert fühlen.

Zur Kontrolle:
Der Name der neu erstellten Datei ist in der Struktur zu sehen und eine leere Datei ist bereit um den Text der XML-Struktur zu erfassen.

Möglicherweise sind die Unterverzeichnisse und die darin enthaltenen Dateien ausgeblendet. Diese können durch Anklicken des kleinen Dreiecks neben dem Verzeichnis-Namen ein- bzw. ausgeblendet werden.



Die gerade erstellte Datei wird mit der folgenden XML-Struktur gefüllt.
Für eine detaillierte Erklärung der Bedeutung der einzelnen XML-Elemente in der Struktur sehen Sie bitte im Dokument
Datei 'FunctionKeys.xml' mit der Zuordnung von Funktionstasten zu Schaltflächen (Buttons) nach.

<FunctionKeyAssignments>
  
<FrameIndividualAssignments>
  
</FrameIndividualAssignments>
  
<CommonAssignments>
    
<FunctionKeyAssignment>
      
<InternalKeyCode>F1</InternalKeyCode>
      
<DisplayedKeyCode>F1</DisplayedKeyCode>
      
<ButtonName>btn_Help</ButtonName>
      
<IconFileName></IconFileName>
    
</FunctionKeyAssignment>
    
<FunctionKeyAssignment>
      
<InternalKeyCode>F2</InternalKeyCode>
      
<DisplayedKeyCode>F2</DisplayedKeyCode>
      
<ButtonName>btn_Continue</ButtonName>
      
<IconFileName>Icon_Continue.gif</IconFileName>
    
</FunctionKeyAssignment>
  
</CommonAssignments>
</FunctionKeyAssignments>

Um das Tutorial zu vereinfachen werden die Zuordnungen in jenem Bereich der XML-Struktur, der für das gesamte Anwendungsprogramm gültig ist, definiert.

Für das einfache Verwalten der Zuordnung von Funktionstasten zu Schaltflächen ('JButtons') und das Generieren der Datei mit der XML-Struktur wird die Verwendung JavaScout ProjectAssist empfohlen.

Wenn Sie neugierig auf das Ergebnis sind, können Sie zu diesem Zeitpunkt bereits einen Test durchführen.
Beachten Sie aber, daß die Ergebnisse von der gezeigten Abbildungen abweichen werden.

zum Inhaltsverzeichnis

Unterverzeichnis GRAPHICS erstellen und ein Symbol abspeichern

Bei der Erstellung der XML-Struktur in der Datei 'FunctionKeys.xml' wurde dem <ButtonName>btn_Continue</ButtonName> ein grafisches Symbol () zugeordnet: <IconFileName>Icon_Continue.gif</IconFileName>.

Diese Datei wird (wie alle Dateien mit graphischen Elementen) im Verzeichnis GRAPHICS abgelegt.

Markieren Sie zum Erstellen eines Verzeichnisses das Project (Java_Fatclient_01), klicken Sie die rechte Maustaste und wählen Sie aus dem Kontext-Menu New > Folder aus.


Im darauf erscheinenden Fenster (NewFolder) wird der 'Folder name' erfaßt (GRAPHICS) und durch Anklicken der Schaltfläche [ Finish ] bestätigt.
Damit wird auch das Fenster wieder geschlossen.

Bitte beachten Sie die Groß- und Kleinschreibung beim Namen des Verzeichnisses.


Klicken Sie das Symbol mit der rechten Maustaste an und wählen sie aus dem Kontext-Menü Grafik speichern unter... .

Wählen Sie aus dem folgenden Fenster (nicht abgebildet) das gerade erstellte Verzeichnis GRAPHICS aus und speichern Sie die Datei unter dem (bereits vorgeschlagenem) Namen 'Icon_Continue.gif'.



Wenn Sie neugierig auf das Ergebnis sind, können Sie zu diesem Zeitpunkt bereits einen Test durchführen.
Beachten Sie aber, daß die Ergebnisse von der gezeigten Abbildungen abweichen werden.

zum Inhaltsverzeichnis

Layout in der Datei 'DisplayStrings.xml' erweitern

In Schritt 3: Text für die GUI-Elemente von XML-Datei einlesen > Verzeichnis und Datei mit der XML-Struktur mit den sprachabhängigen Texten erstellen wurden nur die absolut notwendigen Parameter für das Layout erfaßt.

Damit die Schaltfläche, die durch die 'Eingabe'-Taste betätigt wird, deutlich erkennbar ist, müssen noch zusätzliche Layout-Parameter erfaßt werden.

Öffnen Sie dazu die Datei 'DisplayStrings.xml' im Verzeichnis 'TEXT.de'.



Erweitern Sie den Bereich um die fett gedruckten Parameter:

<root>
  
<Layout>
    
<LabelFontName>Dialog</LabelFontName>
    
<LabelFontSize>12</LabelFontSize>
    
<LabelFontColor>0</LabelFontColor>
    
<LabelFontStyle>0</LabelFontStyle>
    
<TextFontName>DialogInput</TextFontName>
    
<TextFontSize>12</TextFontSize>
    
<TextFontColor>0</TextFontColor>
    
<TextFontStyle>0</TextFontStyle>
    <PanelBorderColor1>255</PanelBorderColor1>
    
<PanelBorderColor2>8421376</PanelBorderColor2>
    
<OptionalBorderHighlightColor>16777215</OptionalBorderHighlightColor>
    
<OptionalBorderShadowColor>8421504</OptionalBorderShadowColor>
    
<MandatoryBorderHighlightColor>16711680</MandatoryBorderHighlightColor>
    
<MandatoryBorderShadowColor>8421504</MandatoryBorderShadowColor>
    
<SelectedBorderHighlightColor>16711935</SelectedBorderHighlightColor>
    
<SelectedBorderShadowColor>16711935</SelectedBorderShadowColor>
    
<EnterTriggeredButtonBorderHighlightColor>12632256</EnterTriggeredButtonBorderHighlightColor>
    
<EnterTriggeredButtonBorderShadowColor>65280</EnterTriggeredButtonBorderShadowColor>
  </Layout>
  
<CommonElements>
    
<CommonElement>
. . . . . .
. . . . . .

Eine detaillierte Beschreibung der einzelnen Parameter finden Sie im Dokument Datei 'DisplayStrings.xml' mit sprachabhängigen Texten für die Anzeige auf der GUI.
Für das einfache Verwalten der Farben und das Generieren der Datei mit der XML-Struktur wird die Verwendung JavaScout ProjectAssist empfohlen.

zum Inhaltsverzeichnis

Test

Die Einstellungen und die Angabe der zu verwendenden Sprache als Parameter wurden schon im Schritt 2 ausgeführt und bleiben als Einstellung für das 'Project' erhalten.
Die Abfolge zum Starten wurde bereits in den beiden vorigen Schritten mit Abbildungen dokumentiert; deswegen folgen nur Stichworte:

Daraufhin erscheint das Fenster mit der Benutzeroberfläche.

Anmerkung:
Bei der zur Zeit der Erstellung dieses Tutorials (Februar 2008) installierten Version von Java und/oder Eclipse erscheinen die Elemente der Benutzeroberfläche erst nachdem die Größe des Fensters verändert wurde.
Dieser Fehler ist hoffentlich bereits behoben wenn Sie dieses Tutorial durcharbeiten.

Gegenüber vorigen Beispielen sehen Sie folgende Erweiterungen:

  • Der Text der Schaltflächen wurde um die zugeordnete Funktionstaste erweitert.

  • Wenn ein Symbol definiert ist, wird dieses auf der Schaltfläche angezeigt.

  • Die Schaltfläche [ Weiter ] ist grün umrandet; damit ist sie als jene Schaltfläche gekennzeichnet, die durch Drücken der 'Eingabe'-Taste ausgelöst wird.


 

Nach Auswahl einer Geschäftsanwendung kann die Schaltfläche [ Weiter ] auf folgende Weise 'betätigt' werden:

  • Anklicken mit der linken Maustaste.

  • Drücken der Taste 'F2' auf der Tastatur.

  • Drücken der 'Eingabe'-Taste auf der Tastatur.

Die gezeigte Abbildung geht davon aus, daß noch keine Programmierung für das Task-Frame erfolgt ist.
Dadurch wird noch der interne Code der Auswahl im Bereich 'console' ausgegeben.

Wurde bereits der Schritt (noch zu schreiben) programmiert, wird bei Auswahl von 'P' das entsprechende Task-Frame aufgerufen.




zum Inhaltsverzeichnis

Gesamter Code am Ende des Schrittes

zum Inhaltsverzeichnis

Klasse JS_ProjAssist_CommandCenter

package js_projassist.client;
/*
 * Package mit den Klassen zum Bearbeiten von Events */

import java.awt.event.*;
/*
 * Package mit der Basisklasse für das StartFrame. */

import js_base.frame.*;
/*
 * Package mit der Basisklasse für die Struktur mit Parametern. */

import js_base.structures.*;
/*
 * Package mit der Basisklasse für die Bearbeitung von
 *
Dateien mit XML-Strukturen. */
import js_base.xml.*;
/*
 * Package mit der Basisklasse für die Verbindungen zu Datenbank
 * und Java Application Server (JAS). */

import js_base.connections.*;
/* */
public class JS_ProjAssist_CommandCenter extends JSBS_StartFrame {
/*
 * Constructor der Klasse.
 * Code darin wird aufgerufen wenn ein Objekt dieser Klasse erstellt wird. */

    
public JS_ProjAssist_CommandCenter(String parmstrLanguageCode) {
/* 
 * Aufrufen des Constructors der geerbten Klasse;
 * Dort werden die Standard-Initialisierungen ausgeführt. */

      
super();
/* 
 * Aufrufen der Methoden mit den individuellen Initialisierungen für diese Klasse. */
      initialize_before_frame(parmstrLanguageCode);
      initialize_frame();
      initialize_after_frame();
    }
/* 
 * Methode mit den Initialisierungen die notwendig sind bevor das Frame (Window)
 * angezeigt wird. */

    
private void initialize_before_frame(String parmstrLanguageCode) {
/* 
 * Festlegen mit welcher Art von Datenzugriff das Programm arbeitet.
 * Für dieses Tutorial wird der direkte Zugriff auf eine Datenbank verwendet -
 * nicht die Verwendung eine Java-Application-Servers. */

      
RunVersion = CONST_StandAlone;
/* 
 * Initialisieren der Struktur mit den Parametern, die für die gesamte Applikation
 * (inklusive der Task-Frames) gelten.
 * Diese Struktur ist in der geerbten Klasse (JSBS_StartFrame) definiert. */

      
structJSBS_UniversalParameters =
                 
new JSBS_UniversalParameters(parmstrLanguageCode);
/* 
 
* 'Construct' der XML-Struktur mit den sprachabhängigen Texten für GUI-Elemente.
 * Im Constructor wird die XML-Struktur aus der Datei 'DisplayStrings.xml'
 * im Verzeichnis 'TEXT.ls' gelesen wobei 'ls' der ISO-Code der gewählten Sprache
 * (als Parameter der Methode 'main' mitgegeben) ist. */

      
structJSBS_XML_DisplayStrings =
                 
new JSBS_XML_DisplayStrings(structJSBS_UniversalParameters);
/* 
 * Prüfen ob die XML-Struktur fehlerfrei gelesen werden konnte. */

      
if (structJSBS_XML_DisplayStrings.StatusCode != structJSBS_XML_DisplayStrings.CONST_OK) {
/* Fehler beim Einlesen der XML-Struktur; Fehlermeldung und Status-Code auf der Konsole ausgeben.
 * Eine Beschreibung des Fehler-Codes ist in der Interface JSBS_XML_Constants zu finden. */

        System.out.println(
"Fehler beim Einlesen von 'DisplayStrings.xml'; StatusCode: " +
                           Integer.toString(
structJSBS_XML_DisplayStrings.StatusCode));
      }
/* 
 
* 'Construct' der XML-Struktur mit den Tasks (Geschäftsanwendungen).
 * Im Constructor wird die XML-Struktur aus der Datei 'Tasks.xml'
 * im Verzeichnis 'TEXT.ls' gelesen wobei 'ls' der ISO-Code der gewählten Sprache
 * (als Parameter der Methode 'main' mitgegeben) ist. */

      
structJSBS_XML_Tasks =
                 
new JSBS_XML_Tasks(structJSBS_UniversalParameters);
/* 
 * Prüfen ob die XML-Struktur fehlerfrei gelesen werden konnte. */

      
if (structJSBS_XML_Tasks.StatusCode != JSBS_XML_Constants.CONST_OK) {
/* Fehler beim Einlesen der XML-Struktur; Fehlermeldung und Status-Code auf der Konsole ausgeben.
 * Eine Beschreibung des Fehler-Codes ist in der Interface JSBS_XML_Constants zu finden. */

        System.out.println(
"Fehler beim Einlesen von 'Tasks.xml'; StatusCode: " +
                           Integer.toString(
structJSBS_XML_Tasks.StatusCode));
      }
      
else {
/* XML-Struktur ohne Fehler eingelesen; Methode zum 'bauen' eines JTree mit der
 * Task-Hierarchie aufrufen und den JTree auf das GUI-Element übertragen. */

        
tree_SelectableTasks = structJSBS_XML_Tasks.getTaskTree();
      }
    }
/* 
 * Methode mit der das Frame (Window) angezeigt wird. */

    
private void initialize_frame() {
/* Frame (Window) sichtbar machen (anzeigen). */
      setVisible(
true);
/* Anfangsgröße festlegen. */
      setSize(800, 600);
/* Grund-Panel mit den weiteren GUI-Elementen anzeigen.
 * Die GUI-Elemente und deren Anordnung sind in der geerbten Klasse
 * (JSBS_StartFrame) festgelegt. */

      setContentPane(get_pnl_Main());
    }
/* 
 * Methode mit den Initialisierungen die notwendig sind nachdem das Frame (Window)
 * angezeigt wird. */

    
private void initialize_after_frame() {
/* 
 
* 'Construct' der XML-Struktur mit der Zuordnung der Funktionstasten zu den Buttons
 * (Schaltflächen).
 * Im Constructor wird die XML-Struktur aus der Datei 'FunctionKeys.xml'
 * im Verzeichnis 'TEXT.ls' gelesen wobei 'ls' der ISO-Code der gewählten Sprache
 * (als Parameter der Methode 'main' mitgegeben) ist. */

      
structJSBS_XML_FunctionKeys =
                 
new JSBS_XML_FunctionKeys(structJSBS_UniversalParameters);
/* 
 * Prüfen ob die XML-Struktur fehlerfrei gelesen werden konnte. */

      
if (structJSBS_XML_FunctionKeys.StatusCode != structJSBS_XML_FunctionKeys.CONST_OK) {
/* Fehler beim Einlesen der XML-Struktur.
 * Nachdem die GUI bereits initialisiert ist wird die Graphische Warnungs- und Fehleranzeige
 * benutzt. */

           handleErrorEvent(
this.getClass().getName(), "construct_JSBS_XML_FunctionKeys",
                 (
new Integer(structJSBS_XML_FunctionKeys.StatusCode)).toString());
/* Über die Methode 'handleErrorEvent' wird das Programm auch beendet. */
      }
/* 
 * Methode aufrufen mit der alle (in der Datei 'DisplayStrings.xml' definierten)
 * GUI-Elemente mit Text, Font und ToolTipText versehen werden. */

      JSBS_GUIServices.processLanguageDependantElements(
this);
/* 
 * Abfragen mit welcher Art von Datenzugriff das Programm arbeitet.
 * Für das Tutorial wird der direkte Zugriff auf die Datenbank verwendet.
 * Um den Code als Beispiel für später verwenden zu können wird trotzdem
 * mit der Abfrage der Datenzugriffs-Version gearbeitet – allerdings bleibt
 * der Teil für den Datenzugriff über eine Java Application Server noch ohne Code. */

      
if ((RunVersion == CONST_StandAlone) || (RunVersion == CONST_MobileClient)) {
/* Direkter Zugriff auf die Datenbank notwendig: Connection-Manager konstruieren.
 * Dabei werden die Parameter für den Datenbankzugriff aus der Datei 'Connections.xml'
 * gelesen. */

        
structJSBS_DB_ConnectionManager =
            
new JSBS_DB_ConnectionManager(structJSBS_UniversalParameters);
/* Prüfen ob die Verbindung zur Datenbank fehlerfrei hergestellt werden konnte. */
        
if (structJSBS_DB_ConnectionManager.StatusCode != JSBS_XML_Constants.CONST_OK) {
/* Fehler beim Verbinden zur Datenbank.
 * Nachdem die GUI bereits initialisiert ist wird die Graphische Warnungs- und Fehleranzeige
 * benutzt. */

           handleErrorEvent(
this.getClass().getName(), "construct_JSBS_DB_ConnectionManager",
                 (
new Integer(structJSBS_DB_ConnectionManager.StatusCode)).toString());
/* Über die Methode 'handleErrorEvent' wird das Programm auch beendet. */
        }
      }
      
if ((RunVersion == CONST_FatClient) || (RunVersion == CONST_MobileClient)) {
/* Datenzugriff über JAS notwendig; wird in diesem Tutorial nicht verwendet. */
      }
/*
 * Mouse-Listener zu den Listen mit den wählbaren Geschäftsanwendungen und den
 * geöffneten Geschäftsanwendungen hinzufügen.
 * Damit wird bei einem Mausklick auf eine Auswahlmöglichkeit die entsprechende
 * Methode in den Basisklassen aufgerufen und der Code der wählbaren Geschäftsanwendung
 * oder die Nummer der geöffneten Geschäftsanwendung auf das JTextField für die
 * Auswahl (txt_Code) übertragen. */

      get_tree_SelectableTasks().addMouseListener(
this);
      get_pnl_OpenTasksTable().addMouseListener(
this);
/*
 * Verschiedene 'Listener's zu den GUI-Elementen hinzufügen
 * Dazu die rekursive Methode der Basisklasse verwendet. */

      addListeners(
this, null);
/*
 * Methode zur Definition einer Schaltfläche als 'Default-Button'.
 * Mit der Enter-Taste (Keyboard) wird auf diesen Button ein 'Klick' ausgelöst. */

      setEnterTriggeredButton(get_btn_Continue());
    }
/*
 * Methode main(); diese macht diese Klasse 'startbar'.
 * Diese Methode wird aufgerufen wenn ein Objekt dieser Klasse vom Java-Runtime-Environment
 * als 'Start-Klasse' aufgeruffen wird. */

    
public static void main(String[] args) {
/*
 * Übernehmen des Wertes der als Parameter beim Start der Klasse mitgeliefert wurde. */

      String locstrLanguageCode =
"";
      
if (args.length > 0) locstrLanguageCode = args[0];
      
try {
/*
 * 'Construct' eines Objekts dieser Klasse;
 * damit wird der übrige Code dieser Klasse ausgeführt. */
        JS_ProjAssist_CommandCenter aJS_ProjAssist_commandCenter =
             
new JS_ProjAssist_CommandCenter(locstrLanguageCode);
      }
      
catch (Throwable Exc) {
/* Unerwarteter Fehler beim 'Construct' des Objekts; Fehlermeldung ausgeben. */
        System.
out.println("Fehler beim 'construct' der Klasse 'JS_ProjAssist_CommandCenter'.");
        Exc.printStackTrace();
      }
    }
/*
 * Methode die ausgeführt wird wenn ein Klick mit einer Maustaste
 * auf ein GUI-Element, dem der ActionListener hinzugefügt wurde, erfolgt. */

    public void actionPerformed(ActionEvent e) {
/*
 * Gleichnamige Methode in der geerbten Basisklasse aufrufen.
 * Damit werden die 'geerbten' Verarbeitungen (die für alle Anwendungsprogramme
 * gleich sein können) zuerst ausgeführt. */

      
super.actionPerformed(e);
/*
 * Weitere Verarbeitung in einer eigenen Klasse mit statischen Methoden. */

      JS_ProjAssist_CommandCenter__ActionHandler.handleEvent(this, e);
    }

}

zum Inhaltsverzeichnis

Klasse JS_ProjAssist_CommandCenter__ActionHandler

zum Inhaltsverzeichnis

Weitere Schritte und verwandte Dokumentation

Dokument

Inhalt

Tutorial: JavaScout ProjectAssist, Start-Frame Finalisierung (Java_Fatclient_01) – Letzte Feinheiten  

Im nächsten Schritt des Tutorials werden die letzten Feinheiten des Codes, mit denen das grafische Erscheinungsbild und die Benutzerführung optimiert werden, vorgestellt.

Verzeichnisstruktur für die Entwicklung von Heavyweight-Clients mit JS-FCF  

In diesem Theorie-Dokument ist die Verzeichnisstruktur beschrieben, unter der die verwendeten Basis-Klassen die Datei mit den sprachabhängigen Texten erwartet.

Datei 'FunctionKeys.xml' mit der Zuordnung von Funktionstasten zu Schaltflächen (Buttons)  

In diesem Theorie-Dokument ist die XML-Struktur der Datei (FunctionKeys.xml) mit der Zuordnung von Funktionstasten zu Schaltflächen (Buttons) beschrieben.

ProjectAssist - das Programm zur Unterstützung der Software-Entwicklung mit dem JavaScout Fat-Client-Framework  

Inhaltsverzeichnis für ProjectAssist; das Anwendungsprogramm zum Erstellen der XML-Datei.

zum Inhaltsverzeichnis