Module: sdw/templates/application/application

Dieses Modul definiert die Klasse Application. Eine Application ist eine Anwendung die innerhalb eines Applicationcontainers ausgeführt wird. Dazu führt der Applicationcontainer einen Accordioncontainer im Outlinepane, dessen Contentpanes je einer Application entsprechen. Das Öfnnen eines Contentpanes führt dazu, dass die Application initialisiert wird. Wird der Contentpane geschlossen, ruft der Container removeApplicationInactive() der Application auf, die diese Methode standardmäßig bei allen Perspektiven aufruft.

Beim Laden des Applikationscontainers wird auch das Metadatenobjekt über die API geladen, welches unter vielem anderen auch die Liste der Applikationen für den Container und die Liste der Perspektiven für jede Applikation bereitstellt. Das Initialisieren der Perspektiven kann also direkt erfolgen ohne weiteren Zugriff auf die API. Das ist das Standardverhalten und wird durch den direkten Aufruf von startApplication() aus dem Konstruktor heraus realisiert.

Wenn sich die Liste der Perspektiven aber noch ändern soll, z.B. weil ein bestimmter Mandant noch die xy-Perspektive zusätzlich braucht kommt diese Information, wenn sie über die API abgefragt wird, zu spät, denn das UI ist bereits gebaut. Für diesen Fall gibt es die abgeleitete Klasse applicationDeferred, die den Konstruktor dieser Klasse überschreibt.

Author:
  • sdw.systems
Source:
See:

Requires

  • module:sdw/const
  • module:sdw/command
  • module:dijit/layout/AccordionContainer
  • module:dijit/layout/TabContainer
  • module:dijit/layout/ContentPane

Members

(private) applicationContainer

Source:

(private) debug

Source:

(private) languagePack

Source:

(private) metadata

Source:

moduleName

Properties:
Name Type Description
moduleName String

Name des Moduls aus lokaler Konstante

Source:

openPane

Properties:
Name Type Description
openPane module:dijit/layout/ContentPane

Zeiger auf den aktuell geöffneten ContentPane, also auf ein Objekt im Array panes

Source:

openPerspective

Properties:
Name Type Description
openPerspective module:sdw/templates/application/perspective

Zeiger auf die aktuell geöffnete Perspektive, also auf ein Objekt im Array perspectives

Source:

(private) outlinePane

Source:

panes

Properties:
Name Type Description
panes module:dijit/layout/ContentPane

Array der Contentpanes welche die Perspektiven repräsentieren, entweder genau einer ohne einbettenden Container, oder mehrere in einem Accordion- oder TabPane

Source:

perspectives

Properties:
Name Type Description
perspectives module:sdw/templates/application/perspective

Array der Perspektiven der Application, muss überschrieben werden. Object{name:"", title:""}

Source:

showPerspectiveFlat

Properties:
Name Type Description
showPerspectiveFlat Number

Darstellungstyp der Perspektiven der Application, aus lokaler Konstante, 0: Nur eine Perspektive, keine gesonderte Darstellung im GUI

Source:

showPerspectivesAsAccordions

Properties:
Name Type Description
showPerspectivesAsAccordions Number

Darstellungstyp der Perspektiven der Application, aus lokaler Konstante, 1: Mehrere Perspektiven, Darstellung als AccordionContainer

Source:

showPerspectivesAsTabs

Properties:
Name Type Description
showPerspectivesAsTabs Number

Darstellungstyp der Perspektiven der Application, aus lokaler Konstante, 2: Mehrere Perspektiven, Darstellung als TabContainer, Default falls im Konstruktor nichts anderes angegeben ist

Source:

showPerspectiveStyle

Properties:
Name Type Description
showPerspectiveStyle Number

Konstante die angibt, wie die Perspektiven der Application angezeigt werden sollen

Source:

viewContainer

Properties:
Name Type Description
viewContainer module:sdw/templates/containerGUI/viewContainer

Zeiger auf den verwendeten Viewcontainer, falls dieses Konzept in dieser Applikation verwendet wird. Der eigentliche ViewContainer ist eine von sdw/templates/containerGUI/viewContainer abgeleitete Klasse

Source:

(private) viewPane

Source:

Methods

alert(Parameter)

Öffnet einen modalen Informationsdialog der etwas schöner ist als das Verfahren mit alert. Das Parameterobjekt sollte mindestens das Attribut text:"Meine Meldung" setzen

Parameters:
Name Type Description
Parameter Object

für den Dialog.

Source:

constructor(args)

Der Konstruktor stellt alle Argumente innerhalb der Klasse unter this.argument zur Verfügung. Danach wird setProperties() aufgerufen um abgeleiteten Klassen nochmals Gelegenheit zu geben Eigenschaften zu setzen. Danach erfolgt der Aufruf von startApplication synchron und direkt

Parameters:
Name Type Description
args Object

Argumentobjekt

Properties
Name Type Description
debug Boolean

Debugflag

metadata module:sdw/metadata

Zeiger auf das Metadatenobjekt des Applikationscontainers

languagePack module:sdw/languagePack

Zeiger auf das I18N Objekt des Applikationscontainers

applicationContainer module:sdw/templates/application/applicationContainer

Zeiger auf den Applikationscontainer selber

outlinePane module:dijit/layout/ContentPane

Zeiger auf den OutlinePane

viewPane module:dijit/layout/ContentPane

Zeiger auf den ViewPane

Source:

createAccordionGUI()

Erzeugt die Accordioncontainer Darstellung, in der nur eine oder mehrere Perspektiven angezeigt werden. Die Panes haben als Titel den Namen der jeweiligen Perspektive.

Source:

createPerspective(pane) → {module:sdw/templates/application/perspective}

Pure virtual, gibt eine Fehlermeldung aus falls diese Methode von der abgeleiteten Klasse nicht korrekt überschrieben wurde. Die überschreibende Klasse muss für jede PaneId eine Perspektive erzeugen und zurückgeben. Diese wird dann als perspective-Eigenschaft an den Pane gehängt.

Parameters:
Name Type Description
pane module:dijit/layout/ContentPane

Zeiger auf den OutlinePane, in dem sich die Perspektive darstellen soll. Ist entweder ein AccordionPane, ein TabPane oder ein ContentPane ohne Containenr.

Properties
Name Type Description
paneId Number

Id des Panes als laufende Nummer mit 0 beginnend, kann von der abgeleiteten Klasse dazu verwendet werden die passende Perspektive für diesen Pane auszuwählen.

perspective module:sdw/templates/application/perspective

Ist beim Aufruf immer null, wird aber nach Beendigung des Methodenaufrufs auf den Rückgabewert gesetzt, so dass der Pane einen zeiger auf seine Perspektive hat

Source:
Returns:

Zeiger auf die neue Perspektive

Type
module:sdw/templates/application/perspective

createPlaneGUI()

Erzeugt die flache Darstellung, in der nur eine Perspektive oder umgebenden Container angezeigt wird. Der Pane hat keinen Titel da dieser ohne umgebenden Container nicht angezeigt wird.

Source:

createTabGUI()

Erzeugt die Tabcontainer Darstellung, in der nur eine oder mehrere Perspektiven angezeigt werden. Die Panes haben als Titel den Namen der jeweiligen Perspektive.

Source:

createViewContainer(viewContainerModuleName, onViewContainerIsReady)

Erzeugt einen Viewcontainer falls dieser nocht nicht existiert und stellt ihn im Viewpane dar. Muss von der abgeleiteten Klasse aufgerufen werden

Parameters:
Name Type Description
viewContainerModuleName String

Der vollqualifizierte Name des Moduls, also einer von sdw/templates/containerGUI abgeleiteten Klasse. Diese wird über den ClassLoader geladen und bereitgestellt.

onViewContainerIsReady Callback

Wird aufgerufen sobald das Modul geladen und bereitgestellt ist.

Source:

getName()

Unklar, prüfen und löschen. this.applicationName wird nirgendwo gesetzt, brauchen wir das echt??

Source:

getOpenPerspective() → {Objekt}

Gibt einen Zeiger auf die aktuell offene Perspektive der Anwendung zurück.

Source:
Returns:

Die aktuell geöffnete Perspektive der Anwendung, falls es keine gibt null

Type
Objekt

getPerspective(moduleName) → {Object}

Gibt einen Zeiger auf die gesuchte Perspektive zurück

Parameters:
Name Type Description
moduleName String

Der Modulname der gesuchten Perspektive

Source:
Returns:

Die gesuchte Perspektive oder null falls diese nicht Teil der Application ist

Type
Object

onChangePerspective(oldPane, newPane)

Diese Methode kann in den abgeleiteten Klassen überschrieben werden um auf das Ereignis des Pane- und somit des Perspektivwechsels zu reagieren. Die Argumente sind der alte und der neue Pane, die jeweils einen Zeiger auf ihre Perspektive haben. Pure virtual, gibt lediglich eine Warnung aus falls diese Methode von der abgeleiteten Klasse nicht korrekt überschrieben wurde

Parameters:
Name Type Description
oldPane module:dijit/layout/ContentPane

Zeiger auf den alten Pane mit der alten Perspektive

newPane module:dijit/layout/ContentPane

Zeiger auf den neuen Pane mit der neuen Perspektive

Source:

removeApplicationInactive()

Ruft removeApplicationInactive() für alle Perspektive auf um die Ressourcen freizugeben, wenn die umgebende Applikation schlafen geschickt wird

Source:

setProperties()

Gibt der abgeleiteten Klasse neben den Constructor args die Möglichkeit Eigenschaften der Basisklasse zu setzen. Wird vom Konstruktor der Basisklasse aufgerufen. Pure virtual, gibt lediglich eine Warnung aus falls diese Methode von der abgeleiteten Klasse nicht korrekt ü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:

startApplication()

Initialisiert die Application indem die Perspektiven initialisiert werden und baut das GUI. Ist als eigene Methode aus dem Konstruktor ausgelagert damit das in abgeleiteten Klassen, die den Konstruktor überschreiben, leichter aufgerufen werden kann In Abhängigkeit der gewählten Darstellungsform (per setProperties) werden die Perspektiven entweder flach (nur eine), als Accordion- oder Tabcontainer angezeigt. Dazu gibt es 3 verschiedere createGUI() Methoden:

  1. createPlaneGUI() flache Darstellung, nur eine Perspektive oder umgebenden Container
  2. createAccordionGUI() Accordioncontainer-Darstellung, eine oder mehrere Perspektiven
  3. createTabGUI() Tabcontainer-Darstellung, eine oder mehrere Perspektive
Source: