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

Tutorial: Programmierung mit dem JS-FCF 

Tutorial:
JavaScout ProjectAssist, Start-Frame Grundlagen (Java_Fatclient_01) –
Weitere XML-Strukturen einlesen

* 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-08



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
.

Nachdem im vorigen Schritt das Erstellen eine Datei mit XML-Struktur und das Einlesen der Werte im Detail erklärt wurde werden in diesem Schritt zwei weitere Dateien erstellt und eingelesen:

Inhaltsverzeichnis:

Voriger Schritt: Text für die GUI-Elemente von XML-Datei einlesen 

Vorbemerkung 
Vorbedingungen 
Verweis auf Theorie 
Zusätzlicher Code 
* Import von
js_base.connections 
* Art des Zugriffs auf Daten festlegen
 
* XML-Struktur für wählbare Geschäftsanwendungen (Tasks) konstruieren
 
* ConnectionManager für die Verwaltung der Verbindungen zur Datenbank konstruieren
 
Dateien mit den XML-Strukturen erstellen 
* Datei mit XML-Struktur für wählbare Geschäftsanwendungen (Tasks) erstellen 
* Datei mit XML-Struktur mit Parametern für die Datenbank-Verbindung erstellen 
Test 
Gesamter Code am Ende des Schrittes 
Weitere Schritte und verwandte Dokumentation 

Nächster Schritt: Auswählen der Geschäftsanwendung 

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

Der zusätzliche Code in diesem Schritt beschränkt sich auf wenige Zeilen.
Grund für den bescheidenen Zuwachs an zu schreibendem Code ist, daß
die meiste Arbeit in der Erstellung der Datei mit der XML-Struktur mit den sprachabhängigen Texten ist
und
das Einlesen der Datei und das Zuordnen dieser Texte zu den GUI-Elementen mit Methoden der Basisklassen durchgeführt wird.

zum Inhaltsverzeichnis

Import der Bibliothek js_base.connections

/*
 * 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) {
/* 


Die Bibliothek js_base.connections enthält Klassen für die Verbindung zu einer Datenbank oder einem oder mehreren Java-Application-Servern.
In diesem Tutorial werden die Daten direkt von einer Datenbank gelesen; die Verbindung zu JAS erfolgt nicht.

zum Inhaltsverzeichnis

Art des Zugriffs auf Daten festlegen

/* 
 * 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);


Die Basisklassen des JS-FCF bieten folgende Möglichkeiten für die Zugriffe auf Daten:

zum Inhaltsverzeichnis

XML-Struktur für wählbare Geschäftsanwendungen (Tasks) konstruieren

/* 
 * 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(this);
/* 
 * 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). */

Der Code folgt dem Schema wie es schon in Schritt 3: asdf > srqp vorgestellt wurde.
Nachdem das Programm zu diesem Zeitpunkt noch keine Graphische Benutzeroberfläche aufgebaut hat, müssen etwaige Fehler über die Konsole gemeldet werden
.

zum Inhaltsverzeichnis

ConnectionManager für die Verwaltung der Verbindungen zur Datenbank konstruieren

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

    
private void initialize_after_frame() {
/* 
 * 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(this);
/* 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. */
      }
    }


Die Verbindung zur Datenbank wird aufgebaut nachdem die Grafische Benutzeroberfläche (GUI) erstellt wurde.
Zu diesem Zeitpunkt steht auch schon die Methode zur Anzeige von Warnungen oder Fehlern in einem Fenster zur Verfügung – diese Methode wird bei einem eventuell auftretendem Fehler aufgerufen.

zum Inhaltsverzeichnis

Dateien mit den XML-Strukturen 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.

zum Inhaltsverzeichnis

Datei mit XML-Struktur für wählbare Geschäftsanwendungen (Tasks) erstellen

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 'Tasks.xml' mit der Liste der wählbaren Geschäftsanwendungen nach.

Für die weitere Entwicklung des Programms im Tutorial wird nur >Projekt und Sprache verwalten< gebraucht.
Alle anderen Einträge sind nur vorhanden um zu zeigen, wie eine Struktur über mehrere Ebenen angezeigt wird.

<!-- Root-Element (Tasks); ein Root-Element muß vorhanden sein sonst meldet der Parser einen Fehler. -->
<Tasks>
<!-- Markierung, daß der eingegebene Code in Großbuchstaben umgewandelt wird. -->
  
<UpperCase></UpperCase>
<!-- Liste mit den wählbaren Tasks; -->
<!-- die Ordnung der Anzeige auf der GUI ist genau so wie hier in der XML-Struktur definiert. -->
  
<Task>
    
<DisplayedCode>P</DisplayedCode>
    
<InternalCode>P</InternalCode>
    
<Description>Projekt und Sprache verwalten</Description>
    
<Parameter1Label>Projekt-Code</Parameter1Label>
    
<Parameter2Label>Sprach-Code</Parameter2Label>
  
</Task>
<!-- Folgende Einträge werden im Tutorial nicht verwendet; -->
<!-- sie zeigen nur den Aufbau einer hierarchischen Auswahl-Struktur. -->
  
<Task>
    
<DisplayedCode>D</DisplayedCode>
    
<Description>Sprachabhängige Texte und Layout-Parameter verwalten</Description>
  
</Task>
  
<Task>
    
<DisplayedCode>DC</DisplayedCode>
    
<InternalCode>DC</InternalCode>
    
<Description>'Common' Text – Sprachabhängigen Text verwalten</Description>
  
</Task>
  <Task>
    
<DisplayedCode>DS</DisplayedCode>
    
<InternalCode>DS</InternalCode>
    
<Description>'Supplementary' Text – Sprachabhängigen Text verwalten</Description>
  
</Task>
  <Task>
    
<DisplayedCode>DL</DisplayedCode>
    
<InternalCode>DL</InternalCode>
    
<Description>Layout-Parameter für die GUI verwalten</Description>
  
</Task>
  <Task>
    
<DisplayedCode>DF</DisplayedCode>
    
<Description>Sprachabhängige Texte für Funktionstasten verwalten</Description>
  
</Task>
  <Task>
    
<DisplayedCode>DFC</DisplayedCode>
    
<InternalCode>DFC</InternalCode>
    
<Description>'Common' Text – Sprachabhängige Texte für Funktionstasten verwalten</Description>
  
</Task>
  <Task>
    
<DisplayedCode>DFI</DisplayedCode>
    
<InternalCode>DFI</InternalCode>
    
<Description>'Individual' Text – Sprachabhängige Texte für Funktionstasten verwalten</Description>
  
</Task>
  <Task>
    
<DisplayedCode>DX</DisplayedCode>
    
<InternalCode>DX</InternalCode>
    
<Description>XML-Dateien für sprachabhängige Texte generieren</Description>
  
</Task>
  <Task>
    
<DisplayedCode>M</DisplayedCode>
    
<Description>Fehler- und Warnhinweise verwalten</Description>
  
</Task>
  <Task>
    
<DisplayedCode>MD</DisplayedCode>
    
<InternalCode>MD</InternalCode>
    
<Description>Einzelnen Fehler- oder Warnhinweis verwalten</Description>
    
<Parameter1Label>Projekt-Code</Parameter1Label>
    
<Parameter2Label>Sprach-Code</Parameter2Label>
  
</Task>
  <Task>
    
<DisplayedCode>MX</DisplayedCode>
    
<InternalCode>MX</InternalCode>
    
<Description>XML-Datei für Fehler- und Warnhinweis generieren</Description>
    
<Parameter1Label>Projekt-Code</Parameter1Label>
    
<Parameter2Label>Sprach-Code</Parameter2Label>
  
</Task>
</Tasks>

zum Inhaltsverzeichnis

Datei mit XML-Struktur mit Parametern für die Datenbankverbindung erstellen

Zur Kontrolle:
Der Name des neu erstellten Verzeichnisses und 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 'Connections.xml' mit Parametern für Datenbank und JAS nach.

Für dieses Tutorial wird nur der direkte Zugriff auf die Datenbank benötigt. Deswegen enthält die XML-Struktur keine Parameter für eine Verbindung zu einem Java-Application-Server (JAS).

<!-- Root-Element (Connections); -->
<!-- ein Root-Element muß vorhanden sein sonst meldet der Parser einen Fehler. -->

<Connections>
  
<DataBaseParameters>
<!-- Parameter für die Verbindung zur Datenbank. -->
    
<DataBaseDriverName>com.mysql.jdbc.Driver</DataBaseDriverName>
    
<DataBaseName>jdbc:mysql://127.0.0.1:3306/js_tutorial</DataBaseName>
    
<DataBaseUserID>mysql</DataBaseUserID>
    
<DataBasePassword>drowssap</DataBasePassword>
  
</DataBaseParameters>
</Connections>

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 wie schon im vorigen Schritt.

Geändert ist, daß unter den 'Wählbaren Geschäftsanwendungen' die Struktur, die in der Datei 'Tasks.xml' definiert wurde, angezeigt wird.

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.

Durch Anklicken des 'Schalters' links neben eines 'Verzeichnisses' können die darunter liegenden Auswahlmöglichkeiten angezeigt oder verborgen werden.

Die Abbildung zeigt die vollständig angezeigte Struktur.



zum Inhaltsverzeichnis

Gesamter Code am Ende des Schrittes

zum Inhaltsverzeichnis

Klasse JS_ProjAssist_CommandCenter

zum Inhaltsverzeichnis

Weitere Schritte und verwandte Dokumentation

Dokument

Inhalt

Tutorial: JavaScout ProjectAssist (Java_Fatclient_01) – Auswählen der Geschäftsanwendung  

Im nächsten Schritt des Tutorials wird vorgestellt, welche Verarbeitung nach einer Auswahl aus den gelisteten 'wählbaren Geschäftsanwendungen' und dem Anklicken der Schaltfläche [ Weiter ] erfolgt .

Datei 'Tasks.xml' mit der Liste der wählbaren Geschäftsanwendungen  

In diesem Theorie-Dokument ist die XML-Struktur der Datei (Tasks.xml) mit den Auswahl-Möglichkeiten für die Geschäftsanwendungen beschrieben.

Datei 'Connections.xml' mit Parametern für Datenbank und JAS  

In diesem Theorie-Dokument ist die XML-Struktur der Datei (Connections.xml) mit den Parametern für die Verbindung zu einer Datenbank und/oder einem Java Application Server (JAS) beschrieben.

zum Inhaltsverzeichnis