Module: sdw/templates/dialog

Dieses Modul definiert die Klasse tabDialog, ein generischer modaler Dialog auf Basis von dijit/Dialog

Der Dialog basiert auf einem Dataset-GUI und hat OK- und Cancel-Buttons. Er reagiert auf ESC und hat oben rechts ein Cancel-X um den Dialog auch damit zu beenden. Jedes Dataset wird im Gegensatz zum Standarddialog in einem eigenen Tab eines Tabcontainers dargestellt. Der Dialog ist defaultmäßig synchron, d.h. er sendet die Daten seines Datasets an die API und wartet auf die Rückmeldung. Ist diese eine Exception blendet der Dialog im Kopfbereich einen entsprechenden Hinweis und ein Button zur Anzeige der detailiierten Fehlermeldung ein. Dieses Verhalten kann mit asnyc==true geändert werden, in dem Fall muss sich die abgeleitete Klasse um die Fehlerbehandlung kümmern.

Author:
  • sdw.systems
Source:
Author:
  • sdw.systems
Source:

Extends

  • dijit/Dialog

Requires

  • module:dojo/_base/array
  • module:dojo/dom
  • module:dojo/dom-form
  • module:dojo/on
  • module:dojo/dom-style
  • module:dojo/dom-construct
  • module:dijit/registry
  • module:dojox/layout/TableContainer
  • module:dijit/form/Form
  • module:dijit/form/Button
  • module:dijit/form/DropDownButton
  • module:dijit/TooltipDialog
  • module:dijit/form/SimpleTextare
  • module:sdw/command
  • module:sdw/util
  • module:sdw/const

Members

async

Properties:
Name Type Description
async Boolean

Falls true beendet und destroyed sich der Dialog ohne auf die Response des Servers zu warten. Default ist false. Wird in den Konstruktorargs oder per setProperties gesetzt

Source:

caller

Properties:
Name Type Description
caller Object

Zeiger auf das aufrufende Objekt. Wird verwendet um beim aufrufenden Objekt die Existenz bestimmter Methoden abzufragen und diese dann ggf. aufzurufen. Wird in den Konstruktorargs oder per setProperties gesetzt

Source:

debug

Properties:
Name Type Description
debug Boolean

Debug-Flag. Wird in den Konstruktorargs oder per setProperties gesetzt

Source:

languagePack

Properties:
Name Type Description
languagePack Object

i18n-Objekt zur Internationalisierung der Oberfläche. Wird in den Konstruktorargs oder per setProperties gesetzt

Source:

moduleName

Properties:
Name Type Description
moduleName String

Name des Moduls aus lokaler Konstante

Source:

oid

Properties:
Name Type Description
oid OID

Die OID die beim Klick auf OK zusammen mit den Daten des Dialogs an die API gesendet wird. Default ist false. Wird in den Konstruktorargs oder per setProperties gesetzt

Source:

opcode

Properties:
Name Type Description
opcode OPCODE

Der Opcode der beim Klick auf OK zusammen mit den Daten des Dialogs an die API gesendet wird. Default ist false. Wird in den Konstruktorargs oder per setProperties gesetzt

Source:

title

Properties:
Name Type Description
title String

Der Titel des Dialogs der im Fensterbalken steht, also nicht im inneren Fenster. Wird in den Konstruktorargs oder per setProperties gesetzt

Source:

Methods

constructor()

Agrumentobjekt siehe Liste oben

Source:

createDatasets()

Muss von den abgeleiteten Klassen überschrieben werden um das GUI zusammnenzubauen. Diese Implementierung gibt nur eine Warnung aus weil sie nicht überschrieben wurde. Beispiel für die Definition eines Datasets innerhalb der überschriebenen Methode: this.datasets[this.datasets.length]=new TableContainer({id: "dataset1", showLabels: true, cols: 1, customClass: SDWConst.cssKlasseDataset}); this.datasets[this.datasets.length-1].addChild(new ValidationTextBox({...}));
this.datasets[this.datasets.length-1].addChild(new SimpleTextarea({...}));

Source:

createDialog()

Baut das GUI zusammen und implementiert die notwendigen Callbacks Das GUI besteht aus

  1. Einer unsichtbaren Error-Area, die sichtbar wird wenn der Response von der API eine Excpetion enthält und diese präsentiert
  2. Einer Form, die alle Elemente der Datasets beinhaltet
  3. Ein Control-Bereich, der OK und ggf. auch Cancel-Button beinhaltet
Source:

destroyDialog()

Räumt den Dialog auf und gibt die Resourcen frei. Muss nach hide() aufgerufen werden, sonst gibt es beim nächsten Instantiieren einen dijit-widget-id-in-use-error

Source:

getResponse(response)

Muss von den abgeleiteten Klassen überschrieben werden um das Ergebnis des API-Calls weiterzuverarbeiten Diese Implementierung ruft die Methode updateStore(response) des Callers caller auf falls sie existiert.

Parameters:
Name Type Description
response Object

Das response-Objekt das von der Server-API zurückgegben worden ist

Source:

getSelection()

Muss von den abgeleiteten Klassen überschrieben werden um die Liste der markierten Zielen eines tabellenartigen Controls zurückzugeben. Diese Methode wird nur im Kontext ViewTabPane-GUI verwendet Diese Implementierung gibt nur eine Warnung aus weil sie nicht überschrieben wurde und machts nicht

Source:

isValid(data) → {Boolean}

Muss von den abgeleiteten Klassen übrschrieben werden um weitere fachliche Validierungen vorzunehmen. Diese Implementierung gibt nur eine Warnung aus weil sie nicht überschrieben wurde und gibt dann true zurück.

Parameters:
Name Type Description
data Object

Ein Objekt der Art attribute:value das alle Attribute des Dialogs enthält. Die abgeleitete Klasse kann diese über die rein syntaktischen Prüfungen der Controle verwenden um weitergehende semantiche Prüfungen vorzunehmen, z.B: ob ein Beginndatum vor einem Endedatum liegt.

Source:
Returns:

true falls die weitergehenden Prüfungen die Daten als valide erachten, sonst false. Wird false zurückgegeben, bricht die OK-Methode ab und der Nutzer muss die invaliden Daten ändern oder den Dialog mit cancel abbrechen.

Type
Boolean

setPorperties()

Muss von den abgeleiteten Klassen übrschrieben werden um weitere Eigenschaften zu setzen. Diese Implementierung gibt nur eine Warnung aus weil sie nicht überschrieben wurde

Source:

showError(errorMessage)

Falls der response vom Server eine Exception ist soll diese im synchronen Modus angezeigt werden. Dazu wird im oberen Bereich des Dialogs ein Hinweis auf den Fehler und ein Dropdown-Button eingeblendet, der nach dem Öffnen die detaillierte Fehlerbeschreibung anzeigt. Diese Methode baut den Dialog so um, dass der Hinweis und der Dropdwonbutton angezeigt werden falls sie nicht nicht sichtbar sind und aktualisiert die dort anz´gezeigten Informationen mithilfe der übergebenen errorMessage. Falls diese null ist wird die Fehleranzeige wieder unsichtbar gemacht, der Dialog at wieder seine alte Größe und Struktur.

Parameters:
Name Type Description
errorMessage Object

Die Fehlermeldung, wird in de, dropdownbutton-Bereich angezeigt.

Source:

Dieses Modul definiert die Klasse Dialog, ein generischer modaler Dialog auf Basis von dijit/Dialog

Der Dialog basiert auf einem Dataset-GUI und hat OK- und Cancel-Buttons. Er reagiert auf ESC und hat oben rechts ein Cancel-X um den Dialog auch damit zu beenden. Der Dialog ist defaultmäßig synchron, d.h. er sendet die Daten seines Datasets an die API und wartet auf die Rückmeldung. Ist diese eine Exception blendet der Dialog im Kopfbereich einen entsprechenden Hinweis und ein Button zur Anzeige der detailiierten Fehlermeldung ein. Dieses Verhalten kann mit asnyc==true geändert werden, in dem Fall muss sich die abgeleitete Klasse um die Fehlerbehandlung kümmern.

Author:
  • sdw.systems
Source:
Author:
  • sdw.systems
Source:

Extends

  • dijit/Dialog

Requires

  • module:dojo/_base/array
  • module:dojo/dom
  • module:dojo/dom-form
  • module:dojo/on
  • module:dojo/dom-style
  • module:dojo/dom-construct
  • module:dijit/registry
  • module:dojox/layout/TableContainer
  • module:dijit/form/Form
  • module:dijit/form/Button
  • module:dijit/form/DropDownButton
  • module:dijit/TooltipDialog
  • module:dijit/form/SimpleTextare
  • module:sdw/command
  • module:sdw/util
  • module:sdw/const

Members

async

Properties:
Name Type Description
async Boolean

Falls true beendet und destroyed sich der Dialog ohne auf die Response des Servers zu warten. Default ist false. Wird in den Konstruktorargs oder per setProperties gesetzt

Source:

caller

Properties:
Name Type Description
caller Object

Zeiger auf das aufrufende Objekt. Wird verwendet um beim aufrufenden Objekt die Existenz bestimmter Methoden abzufragen und diese dann ggf. aufzurufen. Wird in den Konstruktorargs oder per setProperties gesetzt

Source:

debug

Properties:
Name Type Description
debug Boolean

Debug-Flag. Wird in den Konstruktorargs oder per setProperties gesetzt

Source:

languagePack

Properties:
Name Type Description
languagePack Object

i18n-Objekt zur Internationalisierung der Oberfläche. Wird in den Konstruktorargs oder per setProperties gesetzt

Source:

moduleName

Properties:
Name Type Description
moduleName String

Name des Moduls aus lokaler Konstante

Source:

oid

Properties:
Name Type Description
oid OID

Die OID die beim Klick auf OK zusammen mit den Daten des Dialogs an die API gesendet wird. Default ist false. Wird in den Konstruktorargs oder per setProperties gesetzt

Source:

opcode

Properties:
Name Type Description
opcode OPCODE

Der Opcode der beim Klick auf OK zusammen mit den Daten des Dialogs an die API gesendet wird. Default ist false. Wird in den Konstruktorargs oder per setProperties gesetzt

Source:

title

Properties:
Name Type Description
title String

Der Titel des Dialogs der im Fensterbalken steht, also nicht im inneren Fenster. Wird in den Konstruktorargs oder per setProperties gesetzt

Source:

Methods

constructor()

Agrumentobjekt siehe Liste oben

Source:

createDatasets()

Muss von den abgeleiteten Klassen überschrieben werden um das GUI zusammnenzubauen. Diese Implementierung gibt nur eine Warnung aus weil sie nicht überschrieben wurde. Beispiel für die Definition eines Datasets innerhalb der überschriebenen Methode: this.datasets[this.datasets.length]=new TableContainer({id: "dataset1", showLabels: true, cols: 1, customClass: SDWConst.cssKlasseDataset}); this.datasets[this.datasets.length-1].addChild(new ValidationTextBox({...}));
this.datasets[this.datasets.length-1].addChild(new SimpleTextarea({...}));

Source:

createDialog()

Baut das GUI zusammen und implementiert die notwendigen Callbacks Das GUI besteht aus

  1. Einer unsichtbaren Error-Area, die sichtbar wird wenn der Response von der API eine Excpetion enthält und diese präsentiert
  2. Einer Form, die alle Elemente der Datasets beinhaltet
  3. Ein Control-Bereich, der OK und ggf. auch Cancel-Button beinhaltet
Source:

destroyDialog()

Räumt den Dialog auf und gibt die Resourcen frei. Muss nach hide() aufgerufen werden, sonst gibt es beim nächsten Instantiieren einen dijit-widget-id-in-use-error

Source:

getResponse(response)

Muss von den abgeleiteten Klassen überschrieben werden um das Ergebnis des API-Calls weiterzuverarbeiten Diese Implementierung ruft die Methode updateStore(response) des Callers caller auf falls sie existiert.

Parameters:
Name Type Description
response Object

Das response-Objekt das von der Server-API zurückgegben worden ist

Source:

getSelection()

Muss von den abgeleiteten Klassen überschrieben werden um die Liste der markierten Zielen eines tabellenartigen Controls zurückzugeben. Diese Methode wird nur im Kontext ViewTabPane-GUI verwendet Diese Implementierung gibt nur eine Warnung aus weil sie nicht überschrieben wurde und machts nicht

Source:

isValid(data) → {Boolean}

Muss von den abgeleiteten Klassen übrschrieben werden um weitere fachliche Validierungen vorzunehmen. Diese Implementierung gibt nur eine Warnung aus weil sie nicht überschrieben wurde und gibt dann true zurück.

Parameters:
Name Type Description
data Object

Ein Objekt der Art attribute:value das alle Attribute des Dialogs enthält. Die abgeleitete Klasse kann diese über die rein syntaktischen Prüfungen der Controle verwenden um weitergehende semantiche Prüfungen vorzunehmen, z.B: ob ein Beginndatum vor einem Endedatum liegt.

Source:
Returns:

true falls die weitergehenden Prüfungen die Daten als valide erachten, sonst false. Wird false zurückgegeben, bricht die OK-Methode ab und der Nutzer muss die invaliden Daten ändern oder den Dialog mit cancel abbrechen.

Type
Boolean

setPorperties()

Muss von den abgeleiteten Klassen übrschrieben werden um weitere Eigenschaften zu setzen. Diese Implementierung gibt nur eine Warnung aus weil sie nicht überschrieben wurde

Source:

showError(errorMessage)

Falls der response vom Server eine Exception ist soll diese im synchronen Modus angezeigt werden. Dazu wird im oberen Bereich des Dialogs ein Hinweis auf den Fehler und ein Dropdown-Button eingeblendet, der nach dem Öffnen die detaillierte Fehlerbeschreibung anzeigt. Diese Methode baut den Dialog so um, dass der Hinweis und der Dropdwonbutton angezeigt werden falls sie nicht nicht sichtbar sind und aktualisiert die dort anz´gezeigten Informationen mithilfe der übergebenen errorMessage. Falls diese null ist wird die Fehleranzeige wieder unsichtbar gemacht, der Dialog at wieder seine alte Größe und Struktur.

Parameters:
Name Type Description
errorMessage Object

Die Fehlermeldung, wird in de, dropdownbutton-Bereich angezeigt.

Source: