Module: sdw/templates/containerGUI/viewContainer

Dieses Modul definiert die Klasse ViewContainer. Ein ViewContainer ist Teil des Konzeptes containerGUI welches sich dadurch auszeichnet, dass sich die Perspektiven den View-Bereich der Anwendung teilen. Im Gegensatz zu anderen Konzepten wird der View-Bereich beim Wechsel der Perspektive nicht gelöscht sondern bleibt bestehen. Dabei sind unterschieldiche Szenarien denkbar. So kann der gleiche View von 2 verschiedenen Perspektiven aufgerufen werden, oder die Perspektiven rufen unterschiedliche Objekte auf, die nebeneinander als TabController im ViewContainer dargestellt werden. Auf dijit-Ebene ist der Viewcontainer ein Tab-Container der im Gegensatz zu anderen Konzepten direkt bei der Application angedockt ist, also nicht bei einer Perspektive. Dazu stellt die Klasse Application die Methode createViewContainer: function(viewContainerModuleName) {} zur Verfügung, die den Modulnamen einer von ViewContainer abgeleiteten Klasse erwartet, diese über den Classloader lädt und initialisiert. Falls bereits ein ViewContainer existiert, wird ein erneuter Aufruf dieser Methode ignoriert. Die Basisklasse implementiert insbesondere Methoden für das Hinzufügen und Löschen von TabPanes sowie das Unterdrücken des Neuladens bereits geladener Panes zugunsten der Aktivierung der bereits geladenen Instanz.

Author:
  • sdw.systems
Source:
See:

Requires

Members

(private) application

Source:

borderContainer

Properties:
Name Type Description
borderContainer dijit/layout/BorderContainer

Umfassendes GUI-Element im headline-Stil

Source:

borderContainerCenterPane

Properties:
Name Type Description
ContentPane dijit/layout/ContentPane

center

Source:

borderContainerTopPane

Properties:
Name Type Description
ContentPane dijit/layout/ContentPane

top

Source:

(private) debug

Source:

id

Properties:
Name Type Description
id UUID

Die Id des Datenobjektes welches dieser containerView verwaltet. Wird beim Öffnen des Kontextmenüs des Baumes dafür verwendet um abzugleichen, ob der containerView das gleiche Datenobjekt verwaltet wie das im Baum angeklickte falls es sich um einen Rechtsklick handelt. Falls dem nicht so ist wird das Kontextmenüs des Baumes nicht aktiviert. So wird sichergestellt, das man auf z.B. innerhalb des Baumes an beliebiger Stelle auf Löschen klickt, im containerView aber noch ein ganz anderes Objekt dargestellt ist.

Source:

(private) languagePack

Source:

(private) metadata

Source:

moduleName

Properties:
Name Type Description
moduleName String

Name des Moduls aus lokaler Konstante

Source:

(private) viewPane

Source:

Methods

addOrSelectTab(klasse, name, label, createOnce, closable, data)

Die Identifizierung von TabController im Tabcontainer erfolgt anhanddes Attributes name. Falls der Tabcontainer bereits einen Tab mit diesem Namen hat, wird dieser in des Vordergrund geholt, falls nicht wird ein neuer Tab erzeugt und im Vordergrund eingehängt. Danach wird setProperties() aufgerufen um abgeleiteten Klassen nochmals Gelegenheit zu geben Eigenschaften zu setzen.

Parameters:
Name Type Description
klasse String

Der Name der fachlichen Klasse des Objektes das in dem Tab dargestellt werden soll. Wird nur im echten add-Fall ausgewertet.

name OID

Der identifiziernde, also eindeutige Name des TabController. Meistens die OID des umgebenden Objektes, das im Tab angezeigt wird.

label String

Der Label des TabController, wird nur verwendet wenn ein neuer Tab angelegt wird. Ein abweichender Label wird nicht aktualisiert.

createOnce Boolean

Zeigt an, ob der Tab bei jedem in den Vordergund holen neu gerendert werden soll (false) oder nur einem bei der Erzeugung (true)

closable Boolean

Zeigt an, ob der Tab ein close-Symbol (x neben dem Label) bekommen soll und damit wieder schließbar ist. Wird nur verwendet wenn ein neuer Tab angelegt wird. Ein abweichender closable wird nicht aktualisiert

data Object

Optionales Datenobjekt das dem Tab mitgegeben werden kann

Source:

closeTab(name)

Die Identifizierung von TabController im Tabcontainer erfolgt anhand des Attributes name. Falls der Tabcontainer bereits einen Tab mit diesem Namen hat, wird dieser gelöscht. Falls der Tab ein klasse-Attribut hat, wird die Instanz deleted

Parameters:
Name Type Description
name OID

Der identifiziernde, also eindeutige Name des TabController. Meistens die OID des umgebenden Objektes, das im Tab angezeigt wird.

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.

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

application module:sdw/templates/application/application

Zeiger auf die Applikation

viewPane module:dijit/layout/ContentPane

Zeiger auf den ContentPane, in dem dieser viewContainer dargestellt werden soll. In der Methode createGUI() wird das content-Attribut des ViewPanes auf den Bordercontainer dieses ViewContainers gesetzt.

Source:

createGUI()

Baut das GUI, bestehend aus einem Bordercontainer im Headlinestil mit je einem ContentPane für top und center und fügt in den center Pane einen tabs.TabContainer ein.

Source:

createViewKlasse(tab)

Pure Virtual, muss von den abgeleiteten Klassen überschrieben werden. Gibt einen Fehler aus, wenn sie nicht überschrieben wurde. Die überschriebene Methode muss de neue fachliche Klasseninstanz unter tab.klasse={Object} einhängen. Es gibt keinen Rückgabewert. Wird von this.tabController als Callback vom Containerwatcher aufgerufen wenn ein Pane hinzugefügt oder in den Vordergrund geschoben wird.

Parameters:
Name Type Description
tab dijit/layout/ContentPane

Der ContentPane, dem die neue fachliche Klasseninstanz zugeordnet wird. Hilft der abgeleiteten Klasse, anhand der Eigesnschaft tab.paneId die richtige Instanz zu erzeugen.

Source:

getKalenderController() → {dojox/calendar/Calendar}

Convenience. Kann von den abgeleiteten Klassen überschrieben werden wenn die Anwendung einen Kalender bereitstellt Falls diese Implementierung aufgereufen wird gibt sie eine Meldung aus

Source:
Returns:

Zeiger auf das Kalenderobjekt im KalenderView, einem containerView

Type
dojox/calendar/Calendar

getKalenderView() → {Object}

Convenience. Kann von den abgeleiteten Klassen überschrieben werden wenn die Anwendung einen Kalender bereitstellt. Falls diese Implementierung aufgereufen wird gibt sie eine Meldung aus

Source:
Returns:

Zeiger auf den KalenderView, einnm containerView

Type
Object

getKlasse(name) → {Object}

Die Identifizierung von TabController im Tabcontainer erfolgt anhand des Attributes name. Falls der Tabcontainer bereits einen Tab mit diesem Namen hat, wird true zurück gegeben.

Parameters:
Name Type Description
name OID

Der identifiziernde, also eindeutige Name des TabController. Meistens die OID des umgebenden Objektes, das im Tab angezeigt wird.

Source:
Returns:

Das fachliche Objekt das diesem Pane zugewiesen ist

Type
Object

getPane(name) → {dijit/layout/contentPane}

Die Identifizierung von TabController im Tabcontainer erfolgt anhand des Attributes name. Falls der Tabcontainer bereits einen Tab mit diesem Namen hat, wird true zurück gegeben.

Parameters:
Name Type Description
name OID

Der identifiziernde, also eindeutige Name des TabController. Meistens die OID des umgebenden Objektes, das im Tab angezeigt wird.

Source:
Returns:

Der Tab diesen Namens

Type
dijit/layout/contentPane

getTab(name) → {dijit/layout/contentPane}

Die Identifizierung von TabController im Tabcontainer erfolgt anhand des Attributes name. Falls der Tabcontainer bereits einen Tab mit diesem Namen hat, wird true zurück gegeben.

Parameters:
Name Type Description
name OID

Der identifiziernde, also eindeutige Name des TabController. Meistens die OID des umgebenden Objektes, das im Tab angezeigt wird.

Source:
Returns:

Der Tab diesen Namens

Type
dijit/layout/contentPane

hasTab(name) → {Boolean}

Die Identifizierung von TabController im Tabcontainer erfolgt anhand des Attributes name. Falls der Tabcontainer bereits einen Tab mit diesem Namen hat, wird true zurück gegeben.

Parameters:
Name Type Description
name OID

Der identifiziernde, also eindeutige Name des TabController. Meistens die OID des umgebenden Objektes, das im Tab angezeigt wird.

Source:
Returns:

true falls der Tabcontainer beriets einen Tab diesen Namens hat, sonst false

Type
Boolean

onChangeTab(oldTab, newTab)

Gibt der abgeleiteten Klasse Gelegenheit auf einen Tabwechsel zu reagieren. Pure virtual, gibt lediglich eine Warnung aus falls diese Methode von der abgeleiteten Klasse nicht korrekt überschrieben wurde.

Parameters:
Name Type Description
oldTab Object

Die fachliche Klasseninstanz des TabController, der den Fokus verliert

newTab Object

Die fachliche Klasseninstanz des TabController, der den Fokus bekommt

Source:

removeApplicationInactive()

Löscht dieses Objekt und alle abhängigen.

Source:

selectTab(name)

Die Identifizierung von TabController im Tabcontainer erfolgt anhand des Attributes name. Falls der Tabcontainer bereits einen Tab mit diesem Namen hat, wird dieser in des Vordergrund geholt.

Parameters:
Name Type Description
name OID

Der identifiziernde, also eindeutige Name des TabController. Meistens die OID des umgebenden Objektes, das im Tab angezeigt wird.

Source:

setLabel(label, tabid)

Die Identifizierung von TabController im Tabcontainer erfolgt anhanddes Attributes name. Diese Methode ändert den Label des TabController.

Parameters:
Name Type Description
label String

Der neue Label

tabid Integer

Die id des tabs der ein neues Label bekommt. Wird diese nicht übergeben, wird der aktuell im Vordergrund stehende Tab genommen.

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:

setTabAndPaneName(name, tabid)

Die Identifizierung von TabController im Tabcontainer erfolgt anhanddes Attributes name. Diese Methode ändert die Identität des TabController indem das Name-Attribut sowohl im Tab-Array als auch im Contentpane überschrieben wird. Wird insbesondere aufgerufen, wenn nach dem Erzeugen eines leeren TabController das template-Objekt vom Server zurückkommt und die neue OID als Identität zur Verfügung steht.

Parameters:
Name Type Description
name String

Der neue Name, i.A. die OID

tabid Integer

Der id des tabs der umbenannt werden soll. Wird diese nicht übergeben, wird der aktuell im Vordergrund stehende Tab umbenannt.

Source: