> Inhalt: JavaScout Base-System (JSBS)

JSBS_XML_Tasks – Basisklasse für das Verarbeiten der XML-Struktur mit der Liste der Task-Frames

* 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, dass 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:
2012-04-09

Inhaltsverzeichnis

Code 
Erklärungen und Anwendungsbeispiele 
Verwandte Dokumentation
 

Code

package js_base.xml;

import
java.util.*;

import
javax.swing.*;
import
javax.swing.tree.DefaultMutableTreeNode;

import
org.jdom.*;
import
js_base.frame.JSBS_StartFrame;
import
js_base.structures.JSBS_UniversalParameters;
/**
 *
 * @author kurt[at]javascout(dot)biz
 * @date 2006-08-24
 *
 * @description
 *  de:
 *  Klasse mit speziellen Methoden zum Verarbeiten einer Task-List.
 *  Eine Task-List ist eine XML-Struktur mit den Auswählbaren Codes
 *  und den Beschreibungen für die Geschäftsfall-Anwendungen eines
 *  Anwendungsprogramms.
 *  Diese Klasse erbt JSBS_XML_Base und verwendet deren Methoden um
 *  die Datei mit der XML-Struktur zu lesen.
 *  en:

 *  Class with specialized methods to process a Task-List.
 *  A Task-List is a XML-structure containing selectable codes and
 *  descriptions for the (Sub-) Tasks of an application.
 *  This class inherits JSBS_XML_Base and uses its methods to read a file
 *  containing a XML-structure.
 *
 * @change-log
 * when         who               why
 * --------------------------------------------------------
 *
 */

public class JSBS_XML_Tasks extends JSBS_XML_Base {
/*
 * de:
 * Globale Variablen die von mehr als einer Methode verwendet werden.
 * en:

 * Global variables which are accessed by more than one method. */
/* 
 * de:
 * Indikator, dass der <DisplayedCode> (aus der XML-Struktur) und der eingebenen Code
 * (aus dem Feld der GUI) in Grossbuchstaben umgewandelt werden soll bevor er wieder
 * angezeigt oder für Vergleiche verwendet wird.
 * en:
 * Indicator, that <DisplayedCode> (from the XML-structure) and entered Code (at the GUI)
 * should be converted to upper-case before they are displayed or compared. */
    
boolean bolUpperCase = false;
/* 
 * de:
 * Liste mit den Tasks, Anzahl der Elemente in der Liste und Index um eine Elements
 * aus der Liste adressieren zu können.
 * en:
 * List with the tasks, number of list-elements and index to access an element
 * within the list. */
    
List listTasks;
    
int intListTasksSize;
    
int intListTasksIndex = 0;
/*
 * -------------------------------
 * CONSTRUCTOR der Klasse / CONSTRUCTOR of the class. */
    public JSBS_XML_Tasks(JSBS_StartFrame parmCC) {
/*
 * de: Ausführen des Codes im Constructor der geerbten Klasse.
 * en: Perform the code in the constructor of the inherited class. */
        
super(parmCC);
/* 
 * de:
 * Erstellen des Dateinamens für die XML-Struktur mit dem sprach-abhängigen
 * Informationen zu den Geschäftsfall-Anwendungen (Tasks).
 * Das geschieht durch Zusammensetzen des Verzeichnisses mit den sprach-abhängigen
 * Dateien und des Dateinamens für die Datei mit der XML-Struktur.
 * en:
 * Get the filename for the XML-structure with the language dependant Task-information.
 * This is done by concatenating the directory with the language dependant files
 * and the filename for the file with the XML-structure. */
        
String locstrFileName =
            parmCC.
structJSBS_UniversalParameters.strTextElementsDirectoryName +
            JSBS_UniversalParameters.
CONST_TASKLIST_FILE_NAME;
/* 
 * de:
 * Lesen des Root-Elements. Die Methode ist in der Superklasse - das ist die geerbte Klasse -
 * implementiert.
 * en:
 * Read the Root-Element. The method is implemented in the superclass - i.e. the class inherited. */
        
readXMLFile(locstrFileName);
/*
 * de:
 * Verarbeitung abbrechen wenn der Status-Code etwas anderes als OK signalisiert.
 * en:
 * Break processing if StatusCode signals other than OK */
        
if (StatusCode != CONST_OK) return;
/*
 * de:
 * Prüfen ob das <UpperCase> Element in der XML-Struktur vorhanden ist.
 * en:
 * Check if the <UpperCase> element is present in the XML-structure. */
      
Element locElementUpperCase = XML_RootElement.getChild("UpperCase");
        bolUpperCase = (locElementUpperCase != null);
/* 
 * de:
 * Prüfen ob mindestens ein Element für einen Task in der XML-Struktur vorhanden ist.
 * en:
 * Check if there is at least one Element for a Task in the XML-structure. */
      
Element locElementTask = XML_RootElement.getChild("Task");
      if (locElementTask == null) {
        
StatusCode = CONST_NO_TASK_ELEMENT_PRESENT;
      }
    }
/*
 * ************************************************** */
/*
 *
 * de:
 * METHODE zum füllen eines GUI-Elements vom Typ JTree mit der Task-Struktur.
 * en:
 * METHOD to fill a GUI-element of type JTree with the Task-structure. */
    public JTree getTaskTree() {
/* 
 * de: Oberstes Element des JTree.
 * en: Root-Node of the JTree. */
      
DefaultMutableTreeNode BaseLayer = new DefaultMutableTreeNode();
/* 
 * de:
 * Prüfen ob mindestens ein Element für einen Task in der XML-Struktur vorhanden ist.
 * en:
 * Check if there is at least one Element for a Task in the XML-structure. */
      
Element ElementTask = XML_RootElement.getChild("Task");
      if (ElementTask == null) {
        
StatusCode = CONST_NO_TASK_ELEMENT_PRESENT;
        
return new JTree();
      }
/* 
 * de:
 * Liste mit allen Task-Elementen aus der XML-Struktur herausholen und
 * die Subroutine den Aufbau des JTree ausführen lassen.
 * en:
 * Get the list with all Task-elements out of the XML-structure
 * and let the subroutine do the building of the JTree. */
      
listTasks = XML_RootElement.getChildren("Task");
      intListTasksSize = listTasks.size();
      do {
          BaseLayer.add(buildSubTree());
          
intListTasksIndex++;
      }
while(intListTasksIndex < intListTasksSize);
/* 
 * de:
 * Einen JTree, der auf dem DefaultMutableTreeNode basiert und die
 * komplette Task-Hierarchie enthält, aufbauen.
 * en:
 * Make a JTree based on the DefaultMutableTreeNode which contains
 * the complete Task-Hierarchy now. */
      return new JTree(BaseLayer);
    }
/*
 * ************************************************** */
/*
 * de:
 * METHODE zum aufbauen eines Task-Baumes.
 * Regel für das Zuordnen einer untergeordneten Ebene zu einem 'parent' ist:
 * Alle Elemente die mit dem/den gleichen Buchstaben beginnen und in der
 * XML-Struktur unmittelbar hinter dem 'parent' sind:
 * z.B. wenn in der XML-Liste die Einträge P, PM, PL, PLA, PLB, PI sind,
 * dann sind PM, PL und PI eine Ebene unterhalb von P – sie sind untergeordnete
 * untergeordnete Teilprogramme von P.
 * PLA und PLB sind eine Ebenen unterhalb von PL – sie sind untergeordnete
 * untergeordnete Teilprogramme von PL.
 * Das Erstellen einer solchen Baum-Struktur im GUI-Element JTree erlaubt
 * Anwendern den auswählbaren Code anzuzeigen oder zu verbergen.
 * en:
 * METHOD to build a Task-Tree.
 * Rule for attaching lower levels to a 'parent' is:
 * All elements that start with the same letter(s) as the 'parent' and follow
 * to the 'parent' in the XML-structure:
 * e.g. if the XML-list is P, PM, PL, PLA, PLB, PI
 * then PM, PL and PI are one level below P – they are subtasks of P.
 * PLA and PLB are on level below PL – they are subtasks of PL.
 * Creating such a tree-structure in the GUI-element JTree allows users
 * to show or hide all selectable code belonging to a lower level. */
    private DefaultMutableTreeNode buildSubTree() {
/*
 * ----- Variable / Variables ----- */
/* de:
 * Am Ende dieser Methode enthält dieser 'Baum' die untergeordneten Strukturen
 * (alle Ebenen darunter).
 * en:
 * At the end of the method this 'tree' contains the sub-structure (all levels down). */
      
DefaultMutableTreeNode structTaskTree;
/* de: XML-Element mit allen Informationen (Elementen) für einen Task (Teilprogramm).
 * en: XML-element with all information (elements) for one task. */
      
Element elementTask;
/* de:
 * XML-Element mit dem angezeigten Code (<DisplayedCode>); das ist jener Code den ein
 * Anwender auswählen kann und dessen Buchstaben über die Gruppierung entscheiden.
 * en:
 * XML-element with the <DisplayedCode>; that is the one the user can choose
 * and that letters decide about grouping. */
      
Element elementDisplayedCode;
/* de:
 * Text des angezeigten Codes (<DisplayedCode>) auf den der globale Index gezeigt hat als
 * diese Methode aufgerufen wurde. Verwendet für den Vergleich ob nachfolgende <DisplayedCode>s
 * für untergeordnete Teilprogramme sind.
 * en:
 * Text of the <DisplayedCode> the global index was pointing when this method was entered.
 * Used to compare if following <DisplayedCode>s are for SubTasks. */
     
 String strDisplayedCodeWhenMethodEntered = "";
/* de:
 * Text des untersuchten <DisplayedCode>; das ist jener auf den der globale Index aktuell zeigt.
 * en:
 * Text of inspected <DisplayedCode>; i.e. where the global index is actually pointing. */
     
 String strDisplayedCodeAtNextIndex = "";
/*
 * ----- Beginn des Codes / Begin of Code ----- */
/* de:
 * Oberstes Element der Baum-Struktur die innerhalb dieser Methode gebildet wird, erstellen.
 * Der angezeigte Text wird durch das Unterprogramm 'buildTaskText()' erstellt.
 * en:
 * Create the top-element of the tree-structure created within this method.
 * The displayed text is build by the subroutine 'buildTaskText()'. */
     
 structTaskTree = new DefaultMutableTreeNode(buildTaskText());
/* 
 * de:
 * Text des <DisplayedCode> aufheben um ihn später mit jenem der folgenden XML-Elemente
 * in den folgenden untergeordneten Tasks vergleichen zu können.
 * en:
 * Keep the text of <DisplayedCode> to compare later if following XML-elements in the
 * list are SubTasks. */
      
elementTask = (Element) (listTasks.get(intListTasksIndex));
      elementDisplayedCode = elementTask.getChild("DisplayedCode");
      strDisplayedCodeWhenMethodEntered = elementDisplayedCode.getTextTrim();
/* 
 * de: Nächste(s) XML-Element(e) in der Liste untersuchen ob sie untergeordnete Tasks sind.
 * en: Inspect the next XML-Element(s) in the list if they are Sub-Tasks. */
      while (intListTasksIndex < intListTasksSize - 1) {
        elementTask = (Element) (
listTasks.get(intListTasksIndex + 1));
  
      elementDisplayedCode = elementTask.getChild("DisplayedCode");
        strDisplayedCodeAtNextIndex = elementDisplayedCode.getTextTrim();
/* 
 * de:
 * Untersuchen, ob der <DisplayedCode> des nächsten XML-Elements in der Liste mit dem
 * gleichen Buchstaben beginnt als der <DisplayedCode>, der gespeichert wurde als diese
 * Methode begonnen wurde.
 * en:
 * See if the <DisplayedCode> of the next XML-element in the list starts with the
 * same letter as the <DisplayedCode> that was stored when this method was entered. */
        if (strDisplayedCodeAtNextIndex.indexOf(strDisplayedCodeWhenMethodEntered) == 0) {
/* 
 * de:
 * Beginnt mit dem/den gleichen Buchstaben; also muss es ein untergeordneter Task sein.
 * Diese Methode wieder als Subroutine aufrufen; das führt eine Untersuchung, ob weitere
 * untergeordnete Tasks existieren, aus und erstellt in diesem Fall die untergeordnete
 * Baum-Struktur erstellen.
 * Dann die komplette, von der Subroutine erstellte, Baumstruktur in jene Baum-Struktur,
 * die von dieser Methode erstellt wird, einfügen.
 * en:
 * Starts with the same letter(s); so must be a SubTask.
 * Call this method as a subroutine (this does an inspection if there are Sub-SubTask
 * and builds the tree-structure if there are).
 * Then add the complete tree-structure build by the subroutine to the tree-structure
 * that is build in this method. */
          intListTasksIndex++;
          structTaskTree.add(buildSubTree());
        }
        else {
/* 
 * de:
 * <DisplayedCode> des nächsten XML-Elements in der Liste started nicht mit dem/den gleichen
 * Buchstaben: Erstellen dieser untergeordneten Baum-Struktur ist abgeschlossen.
 * en:
 * <DisplayedCode> in the next XML-element of the list does not start with the same letter(s):
 * Building of this Sub-Tree-structure is completed. */
          return structTaskTree;
        }
      }
/* 
 * de:
 * Wenn keine weiteren XML-Elemente mehr in der Liste vorhanden sind:
 * Die Baum-STruktur, die in dieser Methode erstellt wurde, an die aufrufende Methode zurück liefern.
 * en:
 * If there are no more XML-elements in the list: Return the tree-structure build in this method. */
      return structTaskTree;
    }
/*
 * ************************************************** */
/*
 * de:
 * METHODE zum Erstellen der Zeichenkette mit dem angezeigten Text.
 * Die erstellte Zeichenkette ist eine Abfolge von:
 * Wert von <DisplayedCode>, " - " (Bindestrich als konstanter Wert) und Wert von <Description>.
 * en:
 * METHOD to build a string with the text to be displayed.
 * The built String is a concatenation of the following:
 * value of <DisplayedCode>, " - " (Dash as a constant value) and value of <Description>. */
    private String buildTaskText() {
/*
 * ----- Variable / Variables ----- */
/* de: XML-Element mit der gesamten Information (alle Elemente) eines Tasks.
 * en: XML-element with all information (elements) for one task. */
      
Element elementTask;
/* de:
 * Mehrfach verwendeten XML-Element zum Auslesen verschidenenr untergeordneter Elemente
 * eines Task-Elements.
 * en:
 * Multiple used XML-element to get various sub-elements of a Task-element. */
      
Element elementMultiUsed;
/* de: Text von <DisplayedCode>.
 * en: Text of the <DisplayedCode>. */
     
 String strDisplayedCode;
/* de: Text mit der (längeren) Beschreibung des Tasks; Wert von <Description>.
 * en: Text with the (longer) description of the Task; value of <Description>. */
     
 String strDescription;
/*
 * ----- Beginn des Codes / Begin of Code ----- */
/* de: Herausholen des XML-Elements, auf das der globale Index zeigt, aus der Liste.
 * en: Get the XML-element of the list where the global index is pointing at. */
      elementTask = (Element) (listTasks.get(intListTasksIndex));
/* de: Herausholen der Werte die für die Zeichenkette gebraucht werden.
 * en: Get the values that are needed for the string to be displayed. */
      elementMultiUsed = elementTask.getChild("DisplayedCode");
      strDisplayedCode = elementMultiUsed.getTextTrim();
  
    elementMultiUsed = elementTask.getChild("Description");
      strDescription = elementMultiUsed.getTextTrim();
/*
 * de: Prüfen, ob der <DisplayedCode> in Grossbuchstaben angezeigt werden soll.
 * en: Check if the <DisplayedCode> should be shown in UpperCase. */
      if (bolUpperCase) {
        
return strDisplayedCode.toUpperCase() + " - " + strDescription;
      }

      else {
        
return strDisplayedCode + " - " + strDescription;
      }

    }
/*
 * ************************************************** */
/*
 * de:
 * METHODE zum Prüfen ob der (als Parameter übergebene) Code ein gültiger <DisplayedCode> ist.
 * en:
 * METHOD to check if a Code (passed as parameter) is a valid <DisplayedCode>. */
    public boolean isValidDisplayedCode(String parmDisplayedCode) {
/*
 * ----- Variable / Variables ----- */
/* de: XML-Element mit der gesamten Information (Elemente) für einen Task.
 * en: XML-element with all information (elements) for one task. */
      
Element elementTask;
/* de:
 * Mehrfach verwendetes XML-Element zum Herausholen der untergeordneten Elemente eines
 * Task-Elements.
 * en:
 * Multiple used XML-element to get various sub-elements of a Task-element. */
      
Element elementMultiUsed;
/* de: Text des <DisplayedCode>.
 * en: Text of the <DisplayedCode>. */
     
 String strDisplayedCode;
/*
 * ----- Beginn des Codes / Begin of Code ----- */
/* 
 * de: Prüfen ob zumidest ein Element für einen Task in der XML-Struktur ist.
 * en: Check if there is at least one Element for a Task in the XML-structure. */
      
Element ElementTask = XML_RootElement.getChild("Task");
      if (ElementTask == null) {
        
StatusCode = CONST_NO_TASK_ELEMENT_PRESENT;
        
return false;
      }
/* 
 * de:
 * Liste mit allen Task-Elementen aus der XML-Struktur herausholen für einen
 * späteren Vergleich ob eines den gesuchten <DisplayedCode> enthält.
 * en:
 * Get the list with all Task-elements out of the XML-structure
 * for further comparison if one has the searched <DisplayedCode>. */
      
listTasks = XML_RootElement.getChildren("Task");
      intListTasksSize = listTasks.size();
/* 
 * de:
 * Untersuchen des/der XML-Elements/e in der Liste ob sie den gesuchten <DisplayedCode> enthalten.
 * en:
 * Inspect the XML-element(s) in the list if they have the requested <DisplayedCode>. */
      for (intListTasksIndex = 0; intListTasksIndex < intListTasksSize; intListTasksIndex++) {
        elementTask = (Element) (
listTasks.get(intListTasksIndex));
  
      elementMultiUsed = elementTask.getChild("DisplayedCode");
        strDisplayedCode = elementMultiUsed.getTextTrim();
/* 
 * de:
 * Vergleichen ob der <DisplayedCode> des untersuchten <Task> ist der gleiche als der gesuchte.
 * Der Vergleich hängt vom <UpperCase> Element der XML-Struktur ab.
 * en:
 * Compare if the <DisplayedCode> of the inspected <Task> is the same as the searched one.
 * The comparison depends on the <UpperCase> element of the XML-structure. */
        if ( (strDisplayedCode.compareTo(parmDisplayedCode.trim()) == 0)
            || (
bolUpperCase && (strDisplayedCode.compareToIgnoreCase(parmDisplayedCode.trim()) == 0))
           ) {
          
StatusCode = CONST_OK;
          
return true;
        }

      }
/* 
 * de: Task mit dem gesuchten <DisplayedCode> nicht gefunde; Fehler zurück liefern.
 * en: Task with the requested <DisplayedCode> not found; return error. */
      StatusCode = CONST_NO_TASK_ELEMENT_PRESENT;
      
return false;
    }
/*
 * ************************************************** */
/*
 * de:
 * METHODE die nach der Eingabe eines Auswahl-Codes das entsprechende XML-Element
 * für den Task sucht, die JLabels für die Eingabe von zusätzlichen Parametern
 * mit dem entsprechenden Text füllt und JTextField nach Bedarf für die Eingabe
 * öffnet oder die Eingabe verhindert.
 * Der Text für die JLabels und die Steuerung der JTextFields ist im XML-Element
 * für den Task definiert.
 * en:
 * METHOD which finds the fitting XML-element for the Task after a Selection-Code
 * was entered, sets the text of the JLabels for the parameter-entry and
 * enables/disables the JTextFields for parameter-entry
 * according to the definitions in the XML-structure. */
    public String processParameterFields(JTextField parmtxtCode,
               JLabel parmlblParameter1, JTextField parmtxtParameter1,
               JLabel parmlblParameter2, JTextField parmtxtParameter2,
               JLabel parmlblParameter3, JTextField parmtxtParameter3) {
/*
 * ----- Variable / Variables ----- */
/* de:
 * XML-Element mit allen Informationen (in untergeordneten XML-Elementen) für einen
 * Task (Geschäftsfall-Anwendung).
 * en:
 * XML-element with all information (in Sub-XML-elements) for one task. */
      
Element elementTask;
/* de:
 * Mehrfach verwendetes XML-Element um verschiedene Unter-Elemente aus einem
 * Task-Element auslesen zu können.
 * en:
 * Multiple used XML-element to get various sub-elements of a Task-element. */
      
Element elementMultiUsed;
/* 
 * de:
 * Vom Anwender eingegebener Code; 'Text' des Parameters parmtxtCode;
 * Für den Vergleich mit <DisplayedCode> (aus der XML-Struktur).
 * en:
 * User entered code; 'Text' of the parameter parmtxtCode;
 * to be compared with <DisplayedCode> (out of the XML-structure). */
     
 String strSelectedCode = parmtxtCode.getText().trim();
/*
 * de: Eventuell bestehende 'ToolTip'-Texte löschen.
 * en: Maybe existing 'TollTip'-texts are cleared. */
      if (parmlblParameter1 != null) parmlblParameter1.setToolTipText("");
      if (parmtxtParameter1 != null) parmtxtParameter1.setToolTipText("");
      if (parmlblParameter2 != null) parmlblParameter2.setToolTipText("");
      if (parmtxtParameter2 != null) parmtxtParameter2.setToolTipText("");
      if (parmlblParameter3 != null) parmlblParameter3.setToolTipText("");
      if (parmtxtParameter3 != null) parmtxtParameter3.setToolTipText("");
/* 
 * de:
 * Prüfen ob mindesten ein Element für einen Task in der XML-Struktur vorhanden ist.

 * en:
 * Check if there is at least one Element for a Task in the XML-structure. */
      
elementTask = XML_RootElement.getChild("Task");
      if (elementTask == null) {
        
StatusCode = CONST_NO_TASK_ELEMENT_PRESENT;
/*
 * de: Wenn JLabel-Elemente übergeben wurden: Leere Zeichenkette für den Text setzen.
 * en: If there were JLabel-elements passed: set the text of them to 'empty String'. */
        if (parmlblParameter1 != null) parmlblParameter1.setText("");
        if (parmlblParameter2 != null) parmlblParameter2.setText("");
        if (parmlblParameter3 != null) parmlblParameter3.setText("");
/* de: Wenn JTextField-Element übergeben wurden: Feld für die Eingabe Sperren.
 * en: If there were JTextField-elements passed: set themto 'disabled'. */
        if (parmtxtParameter1 != null) parmtxtParameter1.setEnabled(false);
        if (parmtxtParameter2 != null) parmtxtParameter2.setEnabled(false);
        if (parmtxtParameter3 != null) parmtxtParameter3.setEnabled(false);
        return "";
      }

/* de:
 * Aufrufen der Methode zum Holen des gesamten XML-Elementes für den Task und prüfen
 * ob ein XML-Element gefunden wurde.
 * en:
 * Call the method to get the complete XML-element fot the task and verify if a
 * XML-element was found. */
      elementTask = getTaskElementByDisplayedCode(strSelectedCode);
      if (elementTask != null) {
/* de: Task mit dem gesuchten <DisplayedCode> gefunden; Status auf OK setzen.
 * en: Task with the requested <DisplayedCode> found; set the status to OK. */
        StatusCode = CONST_OK;
/* 
 * de:
 * Übertragen des Textes für die 'Parameter'-Label, sperren/öffnen für die Eingabe bei
 * 'Parameter'-JTextFields und setzen des Tool-Tip-Texts.
 * Aber nur wenn diese übergeben wurden (nicht 'null' sind).
 * en:
 * Transfer the Text for the 'Parameter'-labels, enable/disable the 'Parameter'-JTextFields
 * and set the Tool-Tip-Text. Do this only, if they were passed (not 'null'). */
/* 
 * Ausführen für <Parameter1>. / Do this for <Parameter1>. */
        elementMultiUsed = elementTask.getChild("Parameter1Label");
        if (elementMultiUsed == null) {
/* de:
 * Kein XML-Element für <Parameter1> vorhanden; leere Zeichenkette für das Label
 * und Eingabe für das Text-Feld sperren.
 * en:
 * No XML-element for <Parameter1> defined; set empty String to label and disable text-field. */
          if (parmlblParameter1 != null) parmlblParameter1.setText("");
          if (parmtxtParameter1 != null) parmtxtParameter1.setEnabled(false);
        }
        else {
          if (parmlblParameter1 != null) parmlblParameter1.setText(elementMultiUsed.getTextTrim());
          if (parmtxtParameter1 != null) {
            parmtxtParameter1.setEnabled(true);
/* de:
 * Methode aufrufen in der geprüft wird, ob Eingabeprüfungen definiert sind, und die Prüfregel
 * in die Liste von structJSBS_EntryRules (definiert im StartFrame / CommandCenter) übernommen werden.
 * en:
 * Call the Method with the verification if verification rules for entered values are defined and
 * transfer the rule to the list of structJSBS_EntryRules (defined in the StartFrame / CommandCenter). */

            setParameter1EntryRuleForVerification(strSelectedCode);
          }
/* de:
 * Tool-Tip-Text aus der XML-Struktur auslesen und (wenn vorhanden) auf Label und
 * Text-Feld übertragen.
 * en:
 * Read the Tool-Tip-Text out of the XML-structure and (if present) transfer it to
 * the label and text-field. */
          elementMultiUsed = elementTask.getChild("Parameter1ToolTipText");
          if (elementMultiUsed != null) {
            if (parmlblParameter1 != null) parmlblParameter1.setToolTipText(elementMultiUsed.getTextTrim());
            if (parmtxtParameter1 != null) parmtxtParameter1.setToolTipText(elementMultiUsed.getTextTrim());
          }
        }
/* 
 * Ausführen für <Parameter2>. / Do this for <Parameter2>. */
        elementMultiUsed = elementTask.getChild("Parameter2Label");
        if (elementMultiUsed == null) {
          if (parmlblParameter2 != null) parmlblParameter2.setText("");
          if (parmtxtParameter2 != null) parmtxtParameter2.setEnabled(false);
        }
        else {
          if (parmlblParameter2 != null) parmlblParameter2.setText(elementMultiUsed.getTextTrim());
          if (parmtxtParameter2 != null) {
            parmtxtParameter2.setEnabled(true);
/* de:
 * Methode aufrufen in der geprüft wird, ob Eingabeprüfungen definiert sind, und die Prüfregel
 * in die Liste von structJSBS_EntryRules (definiert im StartFrame / CommandCenter) übernommen werden.
 * en:
 * Call the Method with the verification if verification rules for entered values are defined and
 * transfer the rule to the list of structJSBS_EntryRules (defined in the StartFrame / CommandCenter). */

            setParameter2EntryRuleForVerification(strSelectedCode);
          }
/* ***** */
          elementMultiUsed = elementTask.getChild("Parameter2ToolTipText");
          if (elementMultiUsed != null) {
            if (parmlblParameter2 != null) parmlblParameter2.setToolTipText(elementMultiUsed.getTextTrim());
            if (parmtxtParameter2 != null) parmtxtParameter2.setToolTipText(elementMultiUsed.getTextTrim());
          }
        }
/* 
 * Ausführen für <Parameter3>. / Do this for <Parameter3>. */
        elementMultiUsed = elementTask.getChild("Parameter3Label");
        if (elementMultiUsed == null) {
          if (parmlblParameter3 != null) parmlblParameter3.setText("");
          if (parmtxtParameter3 != null) parmtxtParameter3.setEnabled(false);
        }
        else {
          if (parmlblParameter3 != null) parmlblParameter3.setText(elementMultiUsed.getTextTrim());
          if (parmtxtParameter3 != null) {
            parmtxtParameter3.setEnabled(true);
/* de:
 * Methode aufrufen in der geprüft wird, ob Eingabeprüfungen definiert sind, und die Prüfregel
 * in die Liste von structJSBS_EntryRules (definiert im StartFrame / CommandCenter) übernommen werden.
 * en:
 * Call the Method with the verification if verification rules for entered values are defined and
 * transfer the rule to the list of structJSBS_EntryRules (defined in the StartFrame / CommandCenter). */

            setParameter3EntryRuleForVerification(strSelectedCode);
          }
/* ***** */
          elementMultiUsed = elementTask.getChild("Parameter3ToolTipText");
          if (elementMultiUsed != null) {
            if (parmlblParameter3 != null) parmlblParameter3.setToolTipText(elementMultiUsed.getTextTrim());
            if (parmtxtParameter3 != null) parmtxtParameter3.setToolTipText(elementMultiUsed.getTextTrim());
          }
        }
/*
 * de: Zuletzt den internen Code für den Task auslesen und den Wert zurückliefern,
 * en: Finally derive the <InternalCode> for the task and return the value. */
        elementMultiUsed = elementTask.getChild("InternalCode");
        if (elementMultiUsed != null) return elementMultiUsed.getTextTrim();
        else return "";
      }
      else {
/* 
 * de: Task mit dem gesuchten <DisplayedCode> nicht gefunden; Fehler zurückliefern.

 * en: Task with the requested <DisplayedCode> not found; return error. */
        StatusCode = CONST_NO_TASK_ELEMENT_PRESENT;
/* de: Wenn JLabel-Elemente übergeben wurden: Text leeren.
 * en: If there were JLabel-elements passed: set the text of them to 'empty String'. */
        if (parmlblParameter1 != null) parmlblParameter1.setText("");
        if (parmlblParameter2 != null) parmlblParameter2.setText("");
        if (parmlblParameter3 != null) parmlblParameter3.setText("");
/* de: Wenn JTextField-Element übergeben wurden: dieser für die Eingabe sperren.
 * en: If there were JTextField-elements passed: set themto 'disabled'. */
        if (parmtxtParameter1 != null) parmtxtParameter1.setEnabled(false);
        if (parmtxtParameter2 != null) parmtxtParameter2.setEnabled(false);
        if (parmtxtParameter3 != null) parmtxtParameter3.setEnabled(false);
        return "";
      }
    }
/*
 * ************************************************** */
/* de:
 * Methode zum Ermitteln des <DisplayedCode> bei bekanntem <InternalCode>
 * (der als Parameter übergeben wurde).
 * en:
 * Method to get the <DisplayedCode> for an <InternalCode> (passed as parameter). */
    public String getDisplayedCode(String parmInternalCode) {
/*
 * ----- Variablen / Variables ----- */
/* de: XML-Element mit allen Informationen (Elemente) für einen 'Task'.
 * en: XML-element with all information (elements) for one task. */
      
Element elementTask;
/* de: XML-Element für mehrfache Verwendung zum Bearbeiten verschiedener
 *     Unter-Elemente eines Task-Elements.
 * en: Multiple used XML-element to get various sub-elements of a Task-element. */
      
Element elementMultiUsed;
/* de: Text von <InternalCode>.
 * en: Text of the <InternalCode>. */
     
 String strInternalCode;
/* de: Text von <DisplayedCode>
 * en: Text of the <DisplayedCode>. */
     
 String strDisplayedCode;
/*
 * ----- Beginn des Codes / Begin of Code ----- */
/* de: Prüfen ob mindesten ein Element für einen Task in der XML-Struktur ist.
 * en: Check if there is at least one Element for a Task in the XML-structure. */
      
Element ElementTask = XML_RootElement.getChild("Task");
      if (ElementTask == null) {
        
StatusCode = CONST_NO_TASK_ELEMENT_PRESENT;
        
return "";
      }
/* de:
 * Liste mit alle Task-Elementen aus der XML-Struktur holen damit nachher
 * verglichen werden kann ob eines den gesuchten <InternalCode> enthält.
 * en:

 * Get the list with all Task-elements out of the XML-structure
 * for further comparison if one has the searched <InternalCode>. */
      
listTasks = XML_RootElement.getChildren("Task");
      intListTasksSize = listTasks.size();
/* de:
 * Untersuchen der XML-Elemente in der Liste ob eines den gesuchten <InternalCode>
 * enthält.
 * en:

 * Inspect the XML-element(s) in the list if one has the requested <InternalCode>. */
      for (intListTasksIndex = 0;
          intListTasksIndex
< intListTasksSize;
          intListTasksIndex
++) {
        elementTask = (Element) (
listTasks.get(intListTasksIndex));
  
      elementMultiUsed = elementTask.getChild("InternalCode");
/* de:
 * Prüfen ob ein <InternalCode> innerhalb dieses Elementes definiert ist.
 * Es gibt Elemente die nur die Funktion einer 'Verzweigung' haben und denen
 * kein aufrufbarer 'Task' zugeordnet ist.
 * en:

 * Verify if there is an <InternalCode> defined with this element.
 * There are elements that just have the function as 'branches' without starting
 * a 'task'. */
        if ( elementMultiUsed == null) continue;
        strInternalCode = elementMultiUsed.getTextTrim();
/* de:
 * Vergleichen ob der <InternalCode> des untersuchten <Task> der gleich ist
 * als der gesuchte (aus dem Parameter).
 * In den Vergleich wird auch das <UpperCase> Element der XML-Struktur einbezogen.
 * en:

 * Compare if the <InternalCode> of the inspected <Task> is the same as the
 * searched one.
 * The comparison depends on the <UpperCase> element of the XML-structure. */
        if ( (strInternalCode.compareTo(parmInternalCode.trim()) == 0)
            || (
bolUpperCase && (strInternalCode.compareToIgnoreCase(parmInternalCode.trim()) == 0))
           ) {
          
StatusCode = CONST_OK;
/* de: Task mit dem gesuchten <InternalCode> gefunden; <DisplayedCode> filtern.
 * en: Task with the requested <InternalCode> found; derive <DisplayedCode>. */
          elementMultiUsed = elementTask.getChild("DisplayedCode");
          strDisplayedCode = elementMultiUsed.getTextTrim();
/* de:
 * Wenn die Codes nur in Großbuchstaben erscheinen sollen dann wird der
 * <DisplayedCode> jetzt umgewandelt.
 * en:
 * If the codes should be in upper-case only then transform the <DisplayedCode> now. */
          
if (bolUpperCase) strDisplayedCode = strDisplayedCode.toUpperCase();
          
return strDisplayedCode;
        }

      }
/* de: Task mit dem gesuchten <DisplayedCode> nicht gefunden; Fehler zurückgeben.
 * en: Task with the requested <DisplayedCode> not found; return error. */
      StatusCode = CONST_NO_TASK_ELEMENT_PRESENT;
      
return "";
    }
/*
 * ************************************************** */
/* de:
 * Methode zum Ermitteln des <InternalCode> bei bekanntem <DisplayedCode>
 * (der als Parameter übergeben wurde).
 * en:
 * Method to get the <InternalCode> for an <DisplaedCode> (passed as parameter). */
    public String getInternalCode(String parmDisplayedCode) {
/*
 * ----- Variablen / Variables ----- */
/* de: XML-Element mit allen Informationen (Elemente) für einen 'Task'.
 * en: XML-element with all information (elements) for one task. */
      
Element elementTask;
/* de: XML-Element für mehrfache Verwendung zum Bearbeiten verschiedener
 *     Unter-Elemente eines Task-Elements.
 * en: Multiple used XML-element to get various sub-elements of a Task-element. */
      
Element elementMultiUsed;
/*
 * ----- Beginn des Codes / Begin of Code ----- */
/* de:
 * Aufrufen der Methode zum Holen des gesamten XML-Elementes für den Task und prüfen
 * ob ein XML-Element gefunden wurde.
 * en:
 * Call the method to get the complete XML-element fot the task and verify if a
 * XML-element was found. */
      elementTask = getTaskElementByDisplayedCode(parmDisplayedCode);
      if (elementTask == null) {
/* de: Task mit dem gesuchten <DisplayedCode> nicht gefunden; Fehler zurückgeben.
 * en: Task with the requested <DisplayedCode> not found; return error. */
        StatusCode = CONST_NO_TASK_ELEMENT_PRESENT;
        return "";
      }
      else {
/* de: Task mit dem gesuchten <DisplayedCode> gefunden; <InternalCode> filtern.
 * en: Task with the requested <DisplayedCode> found; derive <InternalCode>. */
          elementMultiUsed = elementTask.getChild("InternalCode");
/* de:
 * Prüfen ob ein <InternalCode> innerhalb dieses Elementes definiert ist.
 * Es gibt Elemente die nur die Funktion einer 'Verzweigung' haben und denen
 * kein aufrufbarer 'Task' zugeordnet ist.
 * en:

 * Verify if there is an <InternalCode> defined with this element.
 * There are elements that just have the function as 'branches' without starting
 * a 'task'. */
          if ( elementMultiUsed == nullreturn "";
/* de: <InternalCode> an aufrufende Methode zurückliefern.
 * en: Return <InternalCode> to the calling method. */
          return elementMultiUsed.getTextTrim();
        }
    }
/*
 * ************************************************** */
/*
 * de:
 * METHODEN zum Auslesen der 'Info-Message' für die Parameter-Felder.
 * Die 'Info-Message' wird im unteren Bereich des Fensters angezeigt wenn das
 * entsprechende Feld den 'Focus' erhält.
 * en:

 * METHODS to get the 'info-message' for the parameter-fields.
 * The 'info-message' is shown in the lower area of the window when the
 * concerned field gets the 'focus'. */
    public String getParameter1InfoMessage(String parmDisplayedCode) {
/*
 * ----- Variablen / Variables ----- */
/* de: XML-Element mit allen Informationen (Elemente) für einen 'Task'.
 * en: XML-element with all information (elements) for one task. */
      Element elementTask;
/* de: XML-Element für mehrfache Verwendung zum Bearbeiten verschiedener
 *     Unter-Elemente eines Task-Elements.
 * en: Multiple used XML-element to get various sub-elements of a Task-element. */
      Element elementMultiUsed;
/*
 * ----- Beginn des Codes / Begin of Code ----- */
/* de:
 * Aufrufen der Methode zum Holen des gesamten XML-Elementes für den Task und prüfen
 * ob ein XML-Element gefunden wurde.
 * en:
 * Call the method to get the complete XML-element fot the task and verify if a
 * XML-element was found. */
      elementTask = getTaskElementByDisplayedCode(parmDisplayedCode);
      if (elementTask == null) {
/* de:
 * Kein XML-Element für den gesuchten Code gefunden. Leere Zeichenkette zurückliefern.
 * en:
 * No XML-element for the requested Code found. Return an empty string. */

        
return "";
      }
      else {
/* de:
 * XML-Element für den gesuchten Code gefunden;
 * Info-Message für das Parameter-Feld auslesen.
 * en:
 * XML-element for the requested Code found;
 * get the Info-Message for the parameter-field. */
        elementMultiUsed = elementTask.getChild("Parameter1InfoMessage");
/* de:
 * Prüfen ob das gesuchte XML-Element vorhanden ist.
 * Wenn keine Info-Message definiert ist dann wird eine leere Zeichenkette
 * zurückgeliefert. Sonst wird der Wert des XML-Elements zurück geliefert.
 * en:

 * Verify if the requested XML-element exists.
 * If an Info-Message is not defined then an empty string is returned.
 * Otherwise the value of the XML-element is returned. */
        if (elementMultiUsed == nullreturn "";
        return elementMultiUsed.getTextTrim();
      }
    }
/* ************************************************** */
    public String getParameter2InfoMessage(String parmDisplayedCode) {
/*
 * ----- Variablen / Variables ----- */
/* de: XML-Element mit allen Informationen (Elemente) für einen 'Task'.
 * en: XML-element with all information (elements) for one task. */
      Element elementTask;
/* de: XML-Element für mehrfache Verwendung zum Bearbeiten verschiedener
 *     Unter-Elemente eines Task-Elements.
 * en: Multiple used XML-element to get various sub-elements of a Task-element. */
      Element elementMultiUsed;
/*
 * ----- Beginn des Codes / Begin of Code ----- */
/* de:
 * Aufrufen der Methode zum Holen des gesamten XML-Elementes für den Task und prüfen
 * ob ein XML-Element gefunden wurde.
 * en:
 * Call the method to get the complete XML-element fot the task and verify if a
 * XML-element was found. */
      elementTask = getTaskElementByDisplayedCode(parmDisplayedCode);
      if (elementTask == null) {
/* de:
 * Kein XML-Element für den gesuchten Code gefunden. Leere Zeichenkette zurückliefern.
 * en:
 * No XML-element for the requested Code found. Return an empty string. */

        
return "";
      }
      else {
/* de:
 * XML-Element für den gesuchten Code gefunden;
 * Info-Message für das Parameter-Feld auslesen.
 * en:
 * XML-element for the requested Code found;
 * get the Info-Message for the parameter-field. */
        elementMultiUsed = elementTask.getChild("Parameter2InfoMessage");
/* de:
 * Prüfen ob das gesuchte XML-Element vorhanden ist.
 * Wenn keine Info-Message definiert ist dann wird eine leere Zeichenkette
 * zurückgeliefert. Sonst wird der Wert des XML-Elements zurück geliefert.
 * en:

 * Verify if the requested XML-element exists.
 * If an Info-Message is not defined then an empty string is returned.
 * Otherwise the value of the XML-element is returned. */
        if (elementMultiUsed == nullreturn "";
        return elementMultiUsed.getTextTrim();
      }
    }
/* ************************************************** */
    public String getParameter3InfoMessage(String parmDisplayedCode) {
/*
 * ----- Variablen / Variables ----- */
/* de: XML-Element mit allen Informationen (Elemente) für einen 'Task'.
 * en: XML-element with all information (elements) for one task. */
      Element elementTask;
/* de: XML-Element für mehrfache Verwendung zum Bearbeiten verschiedener
 *     Unter-Elemente eines Task-Elements.
 * en: Multiple used XML-element to get various sub-elements of a Task-element. */
      Element elementMultiUsed;
/*
 * ----- Beginn des Codes / Begin of Code ----- */
/* de:
 * Aufrufen der Methode zum Holen des gesamten XML-Elementes für den Task und prüfen
 * ob ein XML-Element gefunden wurde.
 * en:
 * Call the method to get the complete XML-element fot the task and verify if a
 * XML-element was found. */
      elementTask = getTaskElementByDisplayedCode(parmDisplayedCode);
      if (elementTask == null) {
/* de:
 * Kein XML-Element für den gesuchten Code gefunden. Leere Zeichenkette zurückliefern.
 * en:
 * No XML-element for the requested Code found. Return an empty string. */

        
return "";
      }
      else {
/* de:
 * XML-Element für den gesuchten Code gefunden;
 * Info-Message für das Parameter-Feld auslesen.
 * en:
 * XML-element for the requested Code found;
 * get the Info-Message for the parameter-field. */
        elementMultiUsed = elementTask.getChild("Parameter3InfoMessage");
/* de:
 * Prüfen ob das gesuchte XML-Element vorhanden ist.
 * Wenn keine Info-Message definiert ist dann wird eine leere Zeichenkette
 * zurückgeliefert. Sonst wird der Wert des XML-Elements zurück geliefert.
 * en:

 * Verify if the requested XML-element exists.
 * If an Info-Message is not defined then an empty string is returned.
 * Otherwise the value of the XML-element is returned. */
        if (elementMultiUsed == nullreturn "";
        return elementMultiUsed.getTextTrim();
      }
    }
/*
 * ************************************************** */
/*
 * de:
 * METHODEN zum Auslesen der 'Prüfregeln' für die Parameter-Felder und übernehmen
 * in das Objekt für die Prüfung von Eingaben.
 * Die 'Prüfregel' wird ausgeführt wenn im Parameter-Feld Text eingegeben wird.
 * en:

 * METHODS to get the 'verification-rules' for the parameter-fields and transfer it
 * into the object for the verification of entries.
 * The 'verification-rule' is executed when text is entered in the parameter-field. */
    private void setParameter1EntryRuleForVerification(String parmDisplayedCode) {
/*
 * de: Zuallererst eventuell noch existierende Prüfregel löschen.
 * en: First of all, remove propably still existing verification-rule. */
      frmCC.structJSBS_EntryRules.removeEntryRule(frmCC.get_txt_Parameter1().getName());
/*
 * de: Wenn kein Parameter-Wert übergeben wurde dann die Methode sofort beenden.
 * en: If no parameter-value was passed then end the method immediately. */
      if (parmDisplayedCode == null) return;
/*
 * ----- Variablen / Variables ----- */
/* de: XML-Element mit allen Informationen (Elemente) für einen 'Task'.
 * en: XML-element with all information (elements) for one task. */
      Element elementTask;
/* de: XML-Element für mehrfache Verwendung zum Bearbeiten verschiedener
 *     Unter-Elemente eines Task-Elements.
 * en: Multiple used XML-element to get various sub-elements of a Task-element. */
      Element elementMultiUsed;
/*
 * ----- Beginn des Codes / Begin of Code ----- */
/* de:
 * Aufrufen der Methode zum Holen des gesamten XML-Elementes für den Task und prüfen
 * ob ein XML-Element gefunden wurde.
 * en:
 * Call the method to get the complete XML-element fot the task and verify if a
 * XML-element was found. */
      elementTask = getTaskElementByDisplayedCode(parmDisplayedCode);
      if (elementTask == null)
/* de: Kein XML-Element für den gesuchten Code gefunden. Methode beenden.
 * en: No XML-element for the requested Code found. End this method. */

        
return;
/*
 * de:
 * XML-Element für den gesuchten Code gefunden; Name des allgemein gültigen GUI-Elements auslesen.
 * Über dieses allgemein gültige GUI-Element wird später die Prüfregel für den Parameterwert ermittelt.
 * en:
 * XML-element for the requested Code found; get the name of the common GUI-Element.
 * The common GUI-Element is used later to get the verification-rule for the parameter-value. */
      elementMultiUsed = elementTask.getChild("Parameter1CommonElementForVerification");
/* de:
 * Prüfen ob das gesuchte XML-Element vorhanden ist.
 * Wenn kein Verweis auf das GUI-Element mit einer Prüfregel existiert dann wird die Methode beendet.
 * en:

 * Verify if the requested XML-element exists.
 * If a reference to the GUI-element with a verification-rule does not exist, then this method is terminated. */
      if (elementMultiUsed == nullreturn;
/*
 * de: Name des allgemein gültigen GUI-Elements aus dem XML-Element auslesen.
 * en: Get the name of the common GUI-Element out of the XML-element. */
      String strCommonElementName = elementMultiUsed.getTextTrim();
/* de: Prüfen ob das XML-Element einen Text enthält; sonst die Methode beenden.
 * en: Verify if the XML-element contains text; otherwise end this method. */
      if (strCommonElementName == nullreturn;
/*
 * de: XML-Element für das allgemein gültige GUI-Element auslesen.
 * en: Get the XML-element for the common GUI-element. */
      elementMultiUsed = frmCC.structJSBS_XML_DisplayStrings.getCommonElement(strCommonElementName);
/* de: Prüfen ob das XML-Element existiert; sonst die Methode beenden.
 * en: Verify if the XML-element exists; otherwise end this method. */
      if (elementMultiUsed == nullreturn;
/* 
 * de:
 * 'Auslesen' der Eingabe-Regeln für minimale und maximale Text-Länge.
 * Wenn keine Regel existiert dann wird der Wert 'null' von der jeweiligen Methode zurückgeliefert.

 * en:
 * 'Read' the Entry-Rules for minimum and maximum length of text.
 * If no Rule exist, then a value of 'null' is returned by each of the called methods. */
      
Integer intMinimumLength =
            
frmCC.structJSBS_XML_DisplayStrings.getProperty_MinimumLength(elementMultiUsed);
      
Integer intMaximumLength =
            
frmCC.structJSBS_XML_DisplayStrings.getProperty_MaximumLength(elementMultiUsed);
/* 
 * de: Einfügen der Werte in die Struktur mit den Eingabe-Regeln.

 * en: Insert the values into the structure with the Entry-Rules. */
      
frmCC.structJSBS_EntryRules.setEntryRuleValues(
            
frmCC.get_txt_Parameter1().getName(), null, null, null,
            
null, intMinimumLength, intMaximumLength, null);
    }
/*
 * ************************************************** */
    private void setParameter2EntryRuleForVerification(String parmDisplayedCode) {
/*
 * de: Zuallererst eventuell noch existierende Prüfregel löschen.
 * en: First of all, remove propably still existing verification-rule. */
      frmCC.structJSBS_EntryRules.removeEntryRule(frmCC.get_txt_Parameter2().getName());
/*
 * de: Wenn kein Parameter-Wert übergeben wurde dann die Methode sofort beenden.
 * en: If no parameter-value was passed then end the method immediately. */
      if (parmDisplayedCode == null) return;
/*
 * ----- Variablen / Variables ----- */
/* de: XML-Element mit allen Informationen (Elemente) für einen 'Task'.
 * en: XML-element with all information (elements) for one task. */
      Element elementTask;
/* de: XML-Element für mehrfache Verwendung zum Bearbeiten verschiedener
 *     Unter-Elemente eines Task-Elements.
 * en: Multiple used XML-element to get various sub-elements of a Task-element. */
      Element elementMultiUsed;
/*
 * ----- Beginn des Codes / Begin of Code ----- */
/* de:
 * Aufrufen der Methode zum Holen des gesamten XML-Elementes für den Task und prüfen
 * ob ein XML-Element gefunden wurde.
 * en:
 * Call the method to get the complete XML-element fot the task and verify if a
 * XML-element was found. */
      elementTask = getTaskElementByDisplayedCode(parmDisplayedCode);
      if (elementTask == null)
/* de: Kein XML-Element für den gesuchten Code gefunden. Methode beenden.
 * en: No XML-element for the requested Code found. End this method. */

        
return;
/*
 * de:
 * XML-Element für den gesuchten Code gefunden; Name des allgemein gültigen GUI-Elements auslesen.
 * Über dieses allgemein gültige GUI-Element wird später die Prüfregel für den Parameterwert ermittelt.
 * en:
 * XML-element for the requested Code found; get the name of the common GUI-Element.
 * The common GUI-Element is used later to get the verification-rule for the parameter-value. */
      elementMultiUsed = elementTask.getChild("Parameter2CommonElementForVerification");
/* de:
 * Prüfen ob das gesuchte XML-Element vorhanden ist.
 * Wenn kein Verweis auf das GUI-Element mit einer Prüfregel existiert dann wird die Methode beendet.
 * en:

 * Verify if the requested XML-element exists.
 * If a reference to the GUI-element with a verification-rule does not exist, then this method is terminated. */
      if (elementMultiUsed == nullreturn;
/*
 * de: Name des allgemein gültigen GUI-Elements aus dem XML-Element auslesen.
 * en: Get the name of the common GUI-Element out of the XML-element. */
      String strCommonElementName = elementMultiUsed.getTextTrim();
/* de: Prüfen ob das XML-Element einen Text enthält; sonst die Methode beenden.
 * en: Verify if the XML-element contains text; otherwise end this method. */
      if (strCommonElementName == nullreturn;
/*
 * de: XML-Element für das allgemein gültige GUI-Element auslesen.
 * en: Get the XML-element for the common GUI-element. */
      elementMultiUsed = frmCC.structJSBS_XML_DisplayStrings.getCommonElement(strCommonElementName);
/* de: Prüfen ob das XML-Element existiert; sonst die Methode beenden.
 * en: Verify if the XML-element exists; otherwise end this method. */
      if (elementMultiUsed == nullreturn;
/* 
 * de:
 * 'Auslesen' der Eingabe-Regeln für minimale und maximale Text-Länge.
 * Wenn keine Regel existiert dann wird der Wert 'null' von der jeweiligen Methode zurückgeliefert.

 * en:
 * 'Read' the Entry-Rules for minimum and maximum length of text.
 * If no Rule exist, then a value of 'null' is returned by each of the called methods. */
      
Integer intMinimumLength =
            
frmCC.structJSBS_XML_DisplayStrings.getProperty_MinimumLength(elementMultiUsed);
      
Integer intMaximumLength =
            
frmCC.structJSBS_XML_DisplayStrings.getProperty_MaximumLength(elementMultiUsed);
/* 
 * de: Einfügen der Werte in die Struktur mit den Eingabe-Regeln.

 * en: Insert the values into the structure with the Entry-Rules. */
      
frmCC.structJSBS_EntryRules.setEntryRuleValues(
            
frmCC.get_txt_Parameter2().getName(), null, null, null,
            
null, intMinimumLength, intMaximumLength, null);
    }
/*
 * ************************************************** */
    private void setParameter3EntryRuleForVerification(String parmDisplayedCode) {
/*
 * de: Zuallererst eventuell noch existierende Prüfregel löschen.
 * en: First of all, remove propably still existing verification-rule. */
      frmCC.structJSBS_EntryRules.removeEntryRule(frmCC.get_txt_Parameter3().getName());
/*
 * de: Wenn kein Parameter-Wert übergeben wurde dann die Methode sofort beenden.
 * en: If no parameter-value was passed then end the method immediately. */
      if (parmDisplayedCode == null) return;
/*
 * ----- Variablen / Variables ----- */
/* de: XML-Element mit allen Informationen (Elemente) für einen 'Task'.
 * en: XML-element with all information (elements) for one task. */
      Element elementTask;
/* de: XML-Element für mehrfache Verwendung zum Bearbeiten verschiedener
 *     Unter-Elemente eines Task-Elements.
 * en: Multiple used XML-element to get various sub-elements of a Task-element. */
      Element elementMultiUsed;
/*
 * ----- Beginn des Codes / Begin of Code ----- */
/* de:
 * Aufrufen der Methode zum Holen des gesamten XML-Elementes für den Task und prüfen
 * ob ein XML-Element gefunden wurde.
 * en:
 * Call the method to get the complete XML-element fot the task and verify if a
 * XML-element was found. */
      elementTask = getTaskElementByDisplayedCode(parmDisplayedCode);
      if (elementTask == null)
/* de: Kein XML-Element für den gesuchten Code gefunden. Methode beenden.
 * en: No XML-element for the requested Code found. End this method. */

        
return;
/*
 * de:
 * XML-Element für den gesuchten Code gefunden; Name des allgemein gültigen GUI-Elements auslesen.
 * Über dieses allgemein gültige GUI-Element wird später die Prüfregel für den Parameterwert ermittelt.
 * en:
 * XML-element for the requested Code found; get the name of the common GUI-Element.
 * The common GUI-Element is used later to get the verification-rule for the parameter-value. */
      elementMultiUsed = elementTask.getChild("Parameter3CommonElementForVerification");
/* de:
 * Prüfen ob das gesuchte XML-Element vorhanden ist.
 * Wenn kein Verweis auf das GUI-Element mit einer Prüfregel existiert dann wird die Methode beendet.
 * en:

 * Verify if the requested XML-element exists.
 * If a reference to the GUI-element with a verification-rule does not exist, then this method is terminated. */
      if (elementMultiUsed == nullreturn;
/*
 * de: Name des allgemein gültigen GUI-Elements aus dem XML-Element auslesen.
 * en: Get the name of the common GUI-Element out of the XML-element. */
      String strCommonElementName = elementMultiUsed.getTextTrim();
/* de: Prüfen ob das XML-Element einen Text enthält; sonst die Methode beenden.
 * en: Verify if the XML-element contains text; otherwise end this method. */
      if (strCommonElementName == nullreturn;
/*
 * de: XML-Element für das allgemein gültige GUI-Element auslesen.
 * en: Get the XML-element for the common GUI-element. */
      elementMultiUsed = frmCC.structJSBS_XML_DisplayStrings.getCommonElement(strCommonElementName);
/* de: Prüfen ob das XML-Element existiert; sonst die Methode beenden.
 * en: Verify if the XML-element exists; otherwise end this method. */
      if (elementMultiUsed == nullreturn;
/* 
 * de:
 * 'Auslesen' der Eingabe-Regeln für minimale und maximale Text-Länge.
 * Wenn keine Regel existiert dann wird der Wert 'null' von der jeweiligen Methode zurückgeliefert.

 * en:
 * 'Read' the Entry-Rules for minimum and maximum length of text.
 * If no Rule exist, then a value of 'null' is returned by each of the called methods. */
      
Integer intMinimumLength =
            
frmCC.structJSBS_XML_DisplayStrings.getProperty_MinimumLength(elementMultiUsed);
      
Integer intMaximumLength =
            
frmCC.structJSBS_XML_DisplayStrings.getProperty_MaximumLength(elementMultiUsed);
/* 
 * de: Einfügen der Werte in die Struktur mit den Eingabe-Regeln.

 * en: Insert the values into the structure with the Entry-Rules. */
      
frmCC.structJSBS_EntryRules.setEntryRuleValues(
            
frmCC.get_txt_Parameter3().getName(), null, null, null,
            
null, intMinimumLength, intMaximumLength, null);
    }
/*
 * ************************************************** */

/*
 * de:
 * METHODE um ein komplettes XML-Element für einen 'Task' aus der XML-Struktur
 * zurückzuliefern. Das XML-Element wird durch den als Parameter übergebenen 
 * Auswahl-Code (DisplayedCode) bestimmt.
 * Das zurück gelieferte XML-Element wird in anderen Methoden weiter verarbeitet.
 * en:

 * METHOD to get a complete XML-Element for a 'Task' out of the XML-structure.
 * The XML-element is defined by the DisplayedCode which is passed as parameter.
 * The returned XML-Element is used for further processing in other methods. */
    private Element getTaskElementByDisplayedCode(String parmDisplayedCode) {
/*
 * ----- Variablen / Variables ----- */
/* de: XML-Element mit allen Informationen (Elemente) für einen 'Task'.
 * en: XML-element with all information (elements) for one task. */
      Element elementTask;
/* de: XML-Element für mehrfache Verwendung zum Bearbeiten verschiedener
 *     Unter-Elemente eines Task-Elements.
 * en: Multiple used XML-element to get various sub-elements of a Task-element. */
      Element elementMultiUsed;
/* de: Text von <DisplayedCode>
 * en: Text of the <DisplayedCode>. */
      String strDisplayedCode;
/*
 * ----- Beginn des Codes / Begin of Code ----- */
/* de: Prüfen ob mindesten ein Element für einen Task in der XML-Struktur ist.
 * en: Check if there is at least one Element for a Task in the XML-structure. */
      Element ElementTask = XML_RootElement.getChild("Task");
      if (ElementTask == null) {
        
StatusCode = CONST_NO_TASK_ELEMENT_PRESENT;
        
return null;
      }
/* de:
 * Liste mit alle Task-Elementen aus der XML-Struktur holen damit nachher
 * verglichen werden kann ob eines den gesuchten <DisplayedCode> enthält.
 * en:

 * Get the list with all Task-elements out of the XML-structure
 * for further comparison if one has the searched <DisplayedCode>. */
      listTasks = XML_RootElement.getChildren("Task");
      intListTasksSize = listTasks.size();
/* de:
 * Untersuchen der XML-Elemente in der Liste ob eines den gesuchten <DisplayedCode>
 * enthält.
 * en:

 * Inspect the XML-element(s) in the list if one has the requested <DisplayedCode>. */
      for (intListTasksIndex = 0;
          intListTasksIndex
< intListTasksSize;
          intListTasksIndex
++) {
        elementTask = (Element) (listTasks.get(intListTasksIndex));
        elementMultiUsed = elementTask.getChild("DisplayedCode");
/* de:
 * Prüfen ob ein <DisplayedCode> innerhalb dieses Elementes definiert ist.
 * Es gibt Elemente die nur die Funktion einer 'Verzweigung' haben und denen
 * kein aufrufbarer 'Task' zugeordnet ist.
 * en:

 * Verify if there is an <DisplayedCode> defined with this element.
 * There are elements that just have the function as 'branches' without starting
 * a 'task'. */
        if (elementMultiUsed == null) continue;
        strDisplayedCode = elementMultiUsed.getTextTrim();
/* de:
 * Vergleichen ob der <DisplayedCode> des untersuchten <Task> der gleiche ist
 * wie der gesuchte (aus dem Parameter).
 * In den Vergleich wird auch das <UpperCase> Element der XML-Struktur einbezogen.
 * en:

 * Compare if the <DisplayedCode> of the inspected <Task> is the same as the
 * searched one.
 * The comparison depends on the <UpperCase> element of the XML-structure. */
        if ( (strDisplayedCode.compareTo(parmDisplayedCode.trim()) == 0)
            || (
bolUpperCase && (strDisplayedCode.compareToIgnoreCase(parmDisplayedCode.trim()) == 0))
           ) {

          StatusCode = CONST_OK;
/* de: Task mit dem gesuchten <DisplayedCode> gefunden; ganzes XML-Element für den Task zurückliefern.
 * en: Task with the requested <DisplayedCode> found; return the whole XML-element for the Task. */
          return elementTask;
        }
      }
/* de: Task mit dem gesuchten <DisplayedCode> nicht gefunden; Fehler zurückgeben.
 * en: Task with the requested <DisplayedCode> not found; return error. */
      StatusCode = CONST_NO_TASK_ELEMENT_PRESENT;
      return null;
    }
/*
 * ************************************************** */
/*
 * de:
 * METHODE um den eingegebenen Text eines GUI-Elements der Klasse JTextField zu holen.
 * Der eingegebene Text wird nur zurück geliefert wenn das JTextField 'enabled' ist.
 * Diese Methode blockiert das 'Auslesen' von eingegebenem Text in Parameter-Feldern
 * die nicht für einen bestimmten Auswahl-Code verwendet werden und aus diesem
 * Grund 'disabled' sind.
 * en:

 * METHOD to get the entered text out of a GUI-element of class JTextField.
 * The text is only returned if the JTextField is 'enabled'.
 * This method blocks the 'reading' of entered text in parameter-fields that are not
 * used for a certain Selection-Code and therefore the JTextField was disabled. */
    public static String filterParameterField(JTextField parmtxtParameter) {
/*
 * de: Inhalt des Feldes nur zurück liefern wenn das Feld 'enabled' ist.
 * en: Return the content of the field only if the field is 'enabled'. */
      if (parmtxtParameter.isEnabled()) return parmtxtParameter.getText();
      else return "";
    }
}

zum Inhaltsverzeichnis

Erklärungen und Anwendungsbeispiele

xxx

zum Inhaltsverzeichnis

Verwandte Dokumentation

Dokument

Inhalt

Leitfaden für die Entwicklung von Heavyweight-Clients mit dem JS-FCF – Notwendige Schritte zur Entwicklung des StartFrames  

Dieser Leitfaden enthält die notwendigen Tätigkeiten für die Entwicklung eines StartFrame (auch als Command-Center bekannt).
Das StartFrame stellt die Möglichkeiten bereit, verschiedene TaskFrames für die Bearbeitung von Geschäftsfällen aufzurufen.
Weiters ist im StartFrame jener Programm-Code enthalten, der die Verbindung zum Datenbanksystem bzw. zum Java-Application-Server (JAS) herstellt.

zum Inhaltsverzeichnis