> Inhalt: JavaScout Base-System (JSBS)

JSBS_OpenedTaskStructure – Struktur, die die Attribute eines geöffneten Task-Frames enthält

* 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:
2013-01-14

Inhaltsverzeichnis

Code 
Erklärungen und Anwendungsbeispiele 
Verwandte Dokumentation
 

Code

package js_base.frame;

import
java.util.*;

import
javax.swing.*;

/**
 *
 * @author kurt[at]javascout(dot)biz
 * @date 2007-09-30
 *
 * @description
 *  de:
 *  Struktur mit der Information über ein geöffnetes Geschäftsfall-Fenster (Task-Frame)
 *  das Teil des gesamten Anwendungsprogramms ist.
 *  
 *  In einem Objekt der Klasse JSBS_StartFrame wird ein Vector gebildet, der alle
 *  geöffneten Task-Frames zur Bearbeitung von Geschäftsfällen enthält.
 *  Diese Information kann bei Bedarf in einer List-Box (pnl_OpenTasks, definiert in
 *  JSBS_StartFrame) angezeigt werden und auch dazu verwendet werden, vom CommandCenter
 *  (Start-Frame) aus ein Task-Frame in den Vordergrund zu bringen.
 *  
 *  en:

 *  Structure to hold the information about an opened Task-Frame (window) which is used
 *  to maintain a business-case and
is part of the application.
 *
 *  A Vector is constructed within an object of class JSBS_StartFrame and this Vector
 *  contains all opened Task-Frames.
 *  This information can be used to display information about the opened Task-Frames in a
 *  List-Box (pnl_OpenTasks, define in JSBS_StartFrame) and allows to bring a certain
 *  Task-Frame to front and give it the focus.
 *
 * @change-log
 * when         who               why
 * --------------------------------------------------------
 *
 */

public class JSBS_OpenedTaskStructure {
/*
 * de:
 * Eindeutige Identifikation des geöffneten Geschäftsfall-Fensters (Task-Frame).
 * Diese Identifikation is notwendig wenn die angezeigten Daten des Geschäftsfalls
 * (z.B. der Produkt-Code eines Produktes) geändert werden soll oder der Geschäftsfall
 * aus der Liste (Vector in JSBS_TaskFrame) entfernt werden soll nachdem das Fenster
 * für den Geschäftsfall geschlossen wurde.
 * en:

 * Unique identifier for the Open Task.
 * This identifier is requiered again when the displayed Task-Data (e.g. the Product-Code of a Product)
 * should be modified or the Open Task has to be removed from the list (Vector in JSBS_TaskFrame)
 * after the Task-Frame was closed. */
    public double dblTaskID;
/* 
 * de:
 * Objekt des Task-Frames. Notwendig wenn das Geschäftsfall-Fenster in den 'Vordergrund' gebracht
 * werden soll oder automatisch geschlossen werden soll wenn das CommandCenter geschlossen wird.

 * en:
 * Object of the Task-Frame. Requiered when the Task should be brought to the 'Front' or
 * automatically be closed when the CommandCenter is closed. */
    public JSBS_TaskFrame frmTaskFrame;
/*
 * de:
 * Auswählbarer Code (dem Anwender bekannter Code zum Aufrufen des Geschäftsfall-Fensters).
 * Verwendet zur Information des Anwenders welche Bedeutung die angezeigten Daten in der Liste
 * haben. Dieser Code wird aus der XML-Struktur mit der Liste der Geschäftsfall-Fenster
 * (Klasse JSBS_XML_Tasks) ermittelt.
 *
 * en:

 * Selectable Code (User-Known-Code of the Task).
 * Used to inform the user which Task-Data is displayed within a list.
 * This code is derived from the XML-file with the Task-List (see class JSBS_XML_Tasks). */
    public String strSelectableCode;
/*
 * de:
 * Text der vom Geschäftsfall zur Verfügung gestellt wird. Dieser Text enthält zusätzliche 
 * Information (z.B. den Produkt-Code eines Produktes).

 * en:
 * Text supplied by the Task; contains additional information (e.g. the Product-Code of a Product). */
    public String strTaskData;
/*
 * --------------------
 * CONSTRUCTOR */
    public JSBS_OpenedTaskStructure (double parmTaskID, JSBS_TaskFrame parmTaskFrame,
                                      String parmSelectableCode, String parmTaskData) {
      dblTaskID = parmTaskID;
      frmTaskFrame = parmTaskFrame;
      strSelectableCode = parmSelectableCode;
      strTaskData = parmTaskData;
    }
/*
 * ******************* */
/*
 * de:
 * METHODE zum Prüfen ob der eingegebene Auswahl-Wert auf ein geöffnetes
 * Geschäftsfall-Fenster zeigt.
 * en:
 * METHOD to verify if the value entered in the field for selection 'points'
 * to an Open Task. */
    public static boolean isOpenedTask(Vector parmOpenedTasks, String parmCode) {
/*
 * de:
 * Variable mit dem eingegebenen numerischen Wert - sofern eine gültige Nummer
 * eingegeben wurde.
 * en:
 * Variable that holds the numeric value entered – if a valid number was entered. */
      int intNumericSelection;
/*
 * de: Numerischen Wert holen oder Ausnahme-Behandlung verwenden um 'false' zurückzugeben.
 * en: Get the numeric variable entered or use the Exception-Handling to return false. */
      try {
/* 
 * de:
 * Innerhalb des 'try' Blocks wird geprüft ob ein gültiger numerische Wert übergeben wurde.
 * en:
 * Within this 'try' block is verified if a valid numeric value was passed. */

        intNumericSelection = (
new Integer(parmCode.trim())).intValue();
/* 
 * de:
 * Prüfen ob die eingegebene Nummer gültig ist für ein Elements innerhalb des Vectors
 * mit den geöffneten Geschäftsfallanwendungen.
 * en:
 * Verify if the entered number is valid for an Element within the Vector with the open Tasks. */
        if (intNumericSelection < 1) return false;
        if (intNumericSelection > parmOpenedTasks.size()) return false;
/* 
 * de:
 * Eingegebener numerischer Wert ist gültig;
 * diesen Status an die aufrufende Methode zurück liefern.
 * en:
 * Entered numeric value is valid; return this status to the calling method. */
        return true;
      }
      
catch (Exception Exc) {
/* 
 * de:
 * Der eingegebene Wert ist keine Nummer;
 * prüfen ob mindestens ein geöffnetes Geschäftsfall-Fenster (Task)
 * für den gesuchten (angezeigten) Auswahlcode exisitert und entsprechenden
 * boolschen Wert zurück liefern.
 * en:
 * The entered value is not a number;
 * verify if at least one open Task exists for the enteres (displayed) selection-code.
 * Return the fitting boolean value. */
        Vector vecFittingTasks =
                getOpenedTasksByDisplayedCode(parmOpenedTasks, parmCode);
        if (vecFittingTasks.size() > 0) return true;
        
else return false;
      }

    }
/*
 * de: WRAPPER-METHODE für die obige Methode.
 * en: WRAPPER-METHOD for the method above. */
    public static boolean isOpenedTask(Vector parmOpenedTasks, JTextField parmCode) {
/*
 * de:
 * Wert (als Zeichenkette) aus dem Eingabefeld extrahieren und Methode aufrufen, die die Arbeit macht.
 * en:
 * Extract the value (as String) from the entry-field and call the method that is doing the work. */
      return isOpenedTask(parmOpenedTasks, parmCode.getText().trim());
    }
/*
 * ******************* */
/*
 * de:
 * METHODE um den 'Focus' auf ein Task-Frame (Geschäftsfall-Fenster) zu setzen.
 * en:

 * METHOD to bring the focus to a Task-Frame that was selected. */
    public static boolean focusOpenedTask(Vector parmOpenedTasks, JTextField parmCode) {
/*
 * de: Zuerst prüfen ob eine eingegebene Number gültig ist.
 * en: Verify first if an entered number is valid. */
      if (! isOpenedTask(parmOpenedTasks, parmCode)) return false;
/* 
 * de:
 * Eingegebene Nummer gültig zur Auswahl eines geöffneten Geschäftsfall-Fensters.
 * Variable für diesen numerischen Wert definieren.
 * en:
 * Entered number valid to select an already opened Task-Frame.
 * Define the variable for this numeric value. */
      int intNumericSelection;
/* 
 * de:
 * Numerische Variable holen oder Fehler-Behandlung verwenden um 'false' zurückzuliefern.
 * en:
 * Get the numeric variable entered or use the Exception-Handling to return false. */
      try {
        intNumericSelection = (
new Integer(parmCode.getText().trim())).intValue();
      }
      
catch (Exception Exc) {return false;}
/* 
 * de:
 * Prüfung auf gültigen Werte-Bereich nicht notwendig weil diese Prüfung bereits beim
 * Aufruf der Methode 'isOpenedTask' erfolgt ist.
 * Objekt mit dem Task-Frame (Geschäftsfall-Fenster) für die weitere Bearbeitung aus dem
 * Vector holen.
 * en:
 * No range-checks neccessary as that was check by calling the method 'isOpenedTask'.
 * Get the object representing the Task-Frame out of the Vector for further processing. */
      JSBS_OpenedTaskStructure structJSBS_OpenedTaskStructure =
        (JSBS_OpenedTaskStructure) parmOpenedTasks.elementAt(intNumericSelection - 1);

/*
 * de:
 * JFrame 'bearbeiten' und ihm dabei den 'Focus' geben und in den Vordergrund bringen.
 * Spezielle Behandlung wenn das JFrame 'iconified' ist; dann das entsprechende Bit
 * ändern.
 * en:

 * Process the JFrame to give it the focus and bring it to the foreground. 
 * Special treatment if the JFrame is 'iconified'; de-iconify it by deactivating this bit. */
      int intFrameState = structJSBS_OpenedTaskStructure.frmTaskFrame.getExtendedState();
      intFrameState &= ~JFrame.
ICONIFIED;
      structJSBS_OpenedTaskStructure.
frmTaskFrame.setExtendedState(intFrameState);
/* 
 * de:
 * JFrame in den Vordergrund bringen (vor alle anderen angezeigten Fenster) ihm den
 * Focus geben.
 * en:
 * Bring the JFrame to the Front (of all displayed windows) and give it the focus. */
      structJSBS_OpenedTaskStructure.frmTaskFrame.toFront();
      structJSBS_OpenedTaskStructure.frmTaskFrame.requestFocusInWindow();
/*
 * de: Alles wie erwartet; 'true' zurückliefern.

 * en: Everything went as expected; return true. */
      
return true;
    }
/*
 * de:
 * METHODE um allen offenen Task-Frames (Geschäftsfall-Fenster) den Befehl zum
 * 'Schliessen' zu senden.
 * en:

 * METHOD to send all open Task-Frames the command to 'close'. */
    public static void closeAllOpenTasks(Vector parmOpenedTasks) {
/*
 * de:
 * Feststellen wie viele Einträge (offene Fenster) im Vector vorhanden sind und
 * Variable für den Index definieren.
 * en:
 * Get the number of entries (open Task-Frames) of the Vector and define
 * a variable for the index. */
      int intVectorSize = parmOpenedTasks.size();
      int intVectorIndex = 0;
/* 
 * de:
 * In einer 'for'-Schleife jedes Task-Frame aus dem Vector herausholen und
 * die Methode zum Schliessen des
Fensters aufrufen.
 * en:
 * Use a 'for'-loop to get each Task-Frame out of the Vector and call the
 * method to close the window. */
      for (intVectorIndex = (intVectorSize - 1); intVectorIndex >= 0; intVectorIndex--) {
        JSBS_OpenedTaskStructure structJSBS_OpenedTaskStructure =
            (JSBS_OpenedTaskStructure) parmOpenedTasks.elementAt(intVectorIndex);
        structJSBS_OpenedTaskStructure.frmTaskFrame.windowClosing(null);
      }

    }
/*
 * de:
 * METHODE um alle 'OpenedTaskStructure' (Daten der geöffneten Geschäftsfall-Fenster)
 * für den im Parameter übergebenen Auswahl Code in einem Vector zurück zu liefern.
 * en:

 * METHOD to return all 'OpenedTaskStructure' (data of the opened Task-Frames) for the
 * displayed Selection Code passed in the parameter within a vector. */
    public static Vector getOpenedTasksByDisplayedCode(Vector parmOpenedTasks, String parmDisplayedCode) {
/*
 * de:
 * Vector, der an die aufrufende Methode zurück geliefert wird, definieren.
 * en:
 * Define the vector that is returned to the calling method. */
      Vector vecReturn = new Vector();
/*
 * de:
 * Feststellen wie viele Einträge (offene Fenster) im Vector vorhanden sind und
 * Variable für den Index definieren.
 * en:
 * Get the number of entries (open Task-Frames) of the Vector and define
 * a variable for the index. */
      int intVectorSize = parmOpenedTasks.size();
      int intVectorIndex = 0;
/* 
 * de:
 * In einer 'for'-Schleife jedes Task-Frame aus dem Vector herausholen und
 * den angezeigten Code mit dem Wert im Parameter vergleichen.
 * en:
 * Use a 'for'-loop to get each Task-Frame out of the Vector and compare the
 * displayed code with the value in the parameter. */
      for (intVectorIndex = (intVectorSize - 1); intVectorIndex >= 0; intVectorIndex--) {
        JSBS_OpenedTaskStructure structJSBS_OpenedTaskStructure =
            (JSBS_OpenedTaskStructure) parmOpenedTasks.elementAt(intVectorIndex);
/*
 * de:
 * Vergleichen, ob der 'Task' zum gesuchten Auswahlcode passt und in diesem Fall die Struktur
 * in den Vector für die Rückgabe einfügen.
 * en:
 * Compare if the 'Task' fits the requested Displayed SelectionCode; in that case add the
 * structure to the vector that is returned. */

        if (structJSBS_OpenedTaskStructure.strSelectableCode.compareTo(parmDisplayedCode) == 0) {
          vecReturn.addElement(structJSBS_OpenedTaskStructure);
        }
      }

/*
 * de:
 * Vector mit den gefundenen Tasks an die aufrufende Methode zurück liefern.
 * en:
 * Return the vector with the found tasks to the calling methods. */
      return vecReturn;
    }
}

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