Module: sdw/templates/application/applicationContainer

Dieses Modul definiert die Klasse ApplicationContainer. Ein ApplicationContainer ist das umfassenste Objekt des Frameworks und wird direkt in einer JSP-Seite instantiiert. Zur Verwaltung der Metadaten auf der Ebene des Applicationcontainers wird ein Metdadatenobjet verwendet.

Author:
  • sdw.systems
Source:
See:

Requires

Members

accordionContainer

Properties:
Name Type Description
accordionContainer dijit/layout/AccordionContainer

Der Accordioncontainer wird im Outline angezeigt und enthält einen AccordionContentpane für jede Applikation des Containers

Source:

accordionContentPanes

Properties:
Name Type Description
accordionContentPanes dijit/layout/ContentPane

Jeder AccordionContentpane repräsentiert eine Application des Containers

Source:

applications

Properties:
Name Type Description
applications Array.<module:sdw/templates/application/application>
Source:

borderContainer

Properties:
Name Type Description
borderContainer dijit/layout/BorderContainer

Der borderContainer ist die äußerste Umgrenzung der Applikationscontainers im Stil sidebar, d.h. links wird ein schmaler Streifen reserviert. Der Rest wird nicht weiter aufgeteilt.

Source:

(private) debug

Source:

(private) dir

Source:

heightBorderContainer

Properties:
Name Type Description
private String

heightBorderContainer - Höhe des Bordercontainers

Source:

languagePack

Properties:
Name Type Description
I18N-Objekt Object.<module:sdw/languagePack>
Source:

metadata

Properties:
Name Type Description
metadata Object.<module:sdw/metadata>

Metadatenobjekt

Source:

moduleName

Properties:
Name Type Description
moduleName String

Name des Moduls aus lokaler Konstante

Source:

onLanguagePackIsReady

Properties:
Name Type Description
onLanguagePackIsReady Callback

siehe Konstruktor

Source:

openApplication

Properties:
Name Type Description
openApplication module:sdw/templates/application/application

Zeiger auf die gerade aktive Application. Entspricht openPane.klasse

Source:

openPane

Properties:
Name Type Description
openPane dijit/layout/ContentPane

Zeiger auf den gerade geöffneten accordionContentPanes

Source:

outlinePane

Properties:
Name Type Description
outlinePane dijit/layout/ContentPane

Der outlinePane ist der Inhaltspane des Sidebars im Bordercontainer

Source:

(private) uniqueId

Source:

viewPane

Properties:
Name Type Description
viewPane dijit/layout/ContentPane

Der viewPane ist der Inhaltspane des Rests des Bordercontainers

Source:

widthOutlinePane

Properties:
Name Type Description
widthOutlinePane String

Kann im Konstruktor überschrieben werden, Format:'width:300px'

Source:

Methods

constructor(args, onLanguagePackIsReady)

Der Konstruktor wird direkt aus dem jsp-File aufgerufen und stellt alle Argumente innerhalb der Klasse unter this.argument zur Verfügung. Der Konstruktor initialisiert den Applicationcontainer indem er die wichtigsten Metadaten vom Server lädt. Dazu werden 2 xhr-Request und eine weitere Callbackmethode aufgerufen, die zwar grundsätzlich asynchron sind, aber trotzdem sequentiell abgearbeitet werden müssen weil sie auf Daten des vorherigen Callbacks angewiesen sind:

  1. Erzeugen des Metadatenobjektes mit Callback onMetadataIsReady sobald diese geladen sind
  2. onMetadataIsReady mit Callback onLanguagePackIsReady erzeugt das LanguagePack-Objekt, das mit der Sprache des Nutzers aus dem Metadaten-Objekt parametrisiert wird
  3. onLanguagePackIsReady mit Callback onAngestellterinstanzIsReady setzt die Identität des angemeldeten Nutzers. Hierfür ist ggf. ein Dialog notwendig, der schon in der richtigen Sprache angeziegt werden soll.
  4. onAngestellterinstanzIsReady ruft den als Argument an den Konstruktor übergebenen Callback languagePackIsReady auf. Diese Methode muss in der index.jsp codiert sein und dafür sorgen, dass die HTML-Objekte der Oberfläche außerhalb des Applicationscontainers übersetzt werden. Danach wird das Array der Applikationen aus den Metadaten gesetzt und createGUI aufgerufen.
Parameters:
Name Type Description
args Object

Argumentobjekt

Properties
Name Type Description
debug Boolean

Debugflag

uniqueId String

Eindeutige ID (UUID) des div-Elementes in das der Container eingeblendet werden soll

screenSize String

Bildschirmgröße, normal oder klein

dir String

Verzeichnis mit mandantenspezifischen Dateien

googleMaps Boolean

Die Google Maps API steht zur Verfügung

onLanguagePackIsReady Callback

Zeiger auf eine Callbackfunktion

Source:

createGUI()

Baut die Nutzeroberfläche des Applicationcontainers auf und initialisiert die erste Application, so dass auch deren GUI gebaut wird. Innerhalb des Bordercontainers weden links und rechts ContentPanes eingehängt. Im linken ContentPane wird ein AccordionContainer eingehängt, dessen Panes dann die einzelnen Applikationen darstellen. Der watch-Callback des AccordionPanes erzeugt beim Wechsel eine neue Application als Instanz der Klasse die im Object des Applicationsarrays genannt ist:

  1. für die abgewählte Applikation removeApplicationInactive() aufrufen
  2. require([this.applications[newPane.paneId].application], lang.hitch(this, function(ApplicationClass){...}
  3. die neue Applikation als Objekt in den accordionPane einhängen: newPane.application=new ApplicationClass({})
Source:

logoff()

Beendet die Session. Dazu wird ein entsprechender API-Aufruf abgesetzt und nach Einreffen der Antwort asyncron auf eine neue URI weitergeleitet, die standardmäßig das Neuanmelden und/oder Schließen des Fensters anbietet

Source:

onChangeApplicationPane()

Pure virtual, gibt nur eine Warnung aus wenn die Methode nicht überschrieben wurde

Source:

pwd()

Source:

setProperties()

Pure virtual, gibt nur eine Warnung aus wenn die Methode nicht überschrieben wurde

Source:

showManual(dir)

Deprecated, zeigt das Handbuch der Applikation an, muss überschrieben werden. Manuals werden in neuer Lesart als Applikationdokumente im DMS verwaltet

Parameters:
Name Type Description
dir String

Mandantenspezifisches Verzeichnis in dem das Handbuch als PDF-Datei nach folgenden Maßgabe gefunden werden kann: "/SDW/resources/clients/"+dir+"/manuals/NoManual.pdf"

Source: