Module: sdw/templates/widgets/list

Dieses Modul definiert die Klasse list, ein GUI Element zur Darstellung und Bearbeitung von Listen auf der Basis von dojox/grid/DataGrid. Highlights:

  • Dialogbasiertes Einfügen neuer Zeilen
  • Dialogbasiertes Bearbeiten von Zeilen
  • Löschen von Zeilen (Mehrfachauswahl möglich)
  • Filtern
  • Kann in eine Reihe von kaskadierenden Listen eingebunden werden
  • Toolbar für insert/update/delete sorgt automatisch für enabled/disabled-Status der Buttons
Author:
  • sdw.systems
Source:
See:

Requires

Members

(private) additionalArgs

Source:

(private) additionalStoreFetchArgs

Source:

(private) caller

Source:

(private) dialog

Source:

(private) editable

Source:

(private) firstColumnLabel

Source:

(private) hasFilterTextbox

Source:

(private) listId

Source:

(private) maxRows

Source:

(private) minRows

Source:

moduleName

Properties:
Name Type Description
moduleName String

Name des Moduls aus lokaler Konstante

Source:

(private) nameColumn

Source:

(private) namePopulate

Source:

(private) oidPopulate

Source:

(private) onCallbackListClick

Source:

(private) onCallbackListDoubleclick

Source:

(private) onCallbackListIsLoaded

Source:

(private) onCallbackStoreHasChanged

Source:

(private) opcDelete

Source:

(private) opcInsert

Source:

(private) opcPopulate

Source:

(private) opcUpdate

Source:

(private) region

Source:

(private) rowSelector

Source:

(private) sortInfo

Source:

(private) structure

Source:

(private) useToolbarButtons

Source:

(private) writePermission

Source:

Methods

constructor(args)

Der Konstruktor stellt alle Argumente innerhalb der Klasse unter this.argument zur Verfügung.

Parameters:
Name Type Description
args Object

Argumentobjekt

Properties
Name Type Description
debug Boolean

Debugflag

oidPopulate OID

OID des Objektes von dem diese Liste abhängt

namePopulate OID

Name des Objektes von dem diese Liste abhängt (optional)

opcPopulate OPCODE

Opcode um die Liste von der API zu laden

opcInsert OPCODE

Opcode um ein neues Objekt an die API zu senden

opcUpdate OPCODE

Opcode um eine geänderte Listenzeile an die API zu senden

opcDelete OPCODE

Opcode um eine Liste mit OIDs an die API zu senden um diese zu löschen

dialog String

Modulname einer von module:sdw/templates/viewTabPaneGUI/listDialog abgeleiteten Klasse, also einer Dialogklasse für insert und update.

structure Array.<Object>

Struktur der Liste

firstColumnLabel Array.<Object>

Label der 1. Spalte, die wird um die Anzahl Zeilen in Klammern ergänzt

nameColumn Array.<Object>

Item der Struktur das als Name der Zeile fungiert

listId Integer

Laufende Nummer der Liste, default ist 0, muss übergeben werden wenn es sich um einen Array von kaskadierenden Listen handelt.

region String

Position der Liste, default ist SDWConst.attrCenter muss übergeben werden wenn es sich um einen Array von kaskadierenden Listen handelt.

writePermission Boolean

Bestimmt ob die Liste bearbeitet werden darf, default ist true

sortInfo String

Bestimmt die Nummer des Attributes nach der die Liste initial sortiert ist, default ist "1"

rowSelector String

Bestimmt die Breite des Zeilenkopfes, default ist "20px"

minRows Integer

Constraint: Minimale Anzahl Zeilen in der Liste.

maxRows Integer

Constraint: Mximale Anzahl Zeilen in der Liste.

additionalArgs Object

Zusätzliches Argumentenobjekt für die insert/update-Dialog. Default ist null.

additionalStoreFetchArgs Object

Zusätzliches Argumentenobjekt für den populate-Aufurf an die API. Default ist null.

useToolbarButtons Boolean

Falls true (default) werden die Toolbarbuttons auch dann verwendet wenn es nur eine Liste gibt.

caller Object

Zeiger auf das aufrufende Objekt, z.B. einer abgeleiteten Klasse von module:sdw/templates/viewTabPaneGUI/singleListPane

onCallbackListIsLoaded Calback

Kann vom Caller gesetzt werden um über den Event benachrichtigt zu werden.

onCallbackListClick Calback

Kann vom Caller gesetzt werden um über den Event benachrichtigt zu werden.

onCallbackStoreHasChanged Calback

Kann vom Caller gesetzt werden um über den Event benachrichtigt zu werden.

onCallbackListDoubleclick Calback

Kann vom Caller gesetzt werden um über den Event benachrichtigt zu werden.

editable Boolean

Immer false, mit true wird ein sehr experimentelles inline-Editing ermöglicht. deprecated.

noDataSetSelectedLabel String

Default ist "Kein Datensatz ausgewählt".

hasFilterTextbox Boolean

True falls die Filterlistbox angezeigt werden soll. Default ist false.

Source:

createGUI()

Erzeugt das GUI als BorderContainer. Top ist das FilterGUI wenn es denn Filter geben soll, Center ist die Liste selber wie sie durch das Strukturobjekt beschrieben ist und Bottom sind die +/- Buttons, wenn es denn Buttons geben soll.

Source:

deleteSelection(selection)

Löscht die übergebenen Objekte aus der Liste in dem diese aus dem datatStore gelöscht werden, passt den Zeilenzähler an, aktualisiert die Toolbarbuttons und ruft die Callbackmethode onCallbackStoreHasChanged() auf falls diese definiert ist.

Parameters:
Name Type Description
selection Array.<Object>

Array der ausgewählten Zeilenobjekte

Source:

enableToolbarButtons()

Setzt alle Buttons inkl. Filterbutton der Liste auf enabled oder disabled in Abhängigkeit der Anzahl Zeilen, der Filtereinstellungen und der Anzahl Zeilen in der vorgelagerten Liste falls es denn eine gibt Das betrifft erstmal nur die Buttons der Liste selber Die Buttons der Toolbar oben werden nur gesetzt wenn useToolbarButtons==true ist. Das ist aber bei Listarray > 1 nie der Fall weil es unklar ist auf welche Liste sich eine Aktion der Toolbar bezieht. Um doch an die Toolbar ranzukommen ruft diese Methode this.caller.enableCustomToolbarButtons(listId, rowCount) auf. Die kann in den z.B. vom CascadingListPane abgeleiteten Klassen überschrieben werden. Das onClick-Handling der ToolbarButtons erfolgt dann wie gewohnt, nicht in dieser Klasse.

Source:

getSelectedItemsNameList(selection)

Deprecated. Gibt eine Liste der Namen aller selektierten Storeobjekte zurück, also der Wert jedes items an der Stelle this.nameColumn

Parameters:
Name Type Description
selection Array.<Object>

Array der ausgewählten Zeilenobjekte

Source:

getSelectedNameColumn() → {OID}

Gibt das Namen-Label der 1. selektierte Zeile zurück, also den Wert in Bezug auf this.nameColumn

Source:
Returns:

Die oid der 1. selektierten Zeile

Type
OID

getSelectedOID() → {OID}

Gibt die OID der 1. selektierte Zeile zurück.

Source:
Returns:

Die oid der 1. selektierten Zeile

Type
OID

getSelectedValue(attr) → {unknown}

Gibt den Wert des Attributes attr in Bezug auf die 1. selektierte Zeile zurück. Dabei muss attr nicht in der Struktur der Liste enthalten sein sondern wird aus dem store ausgelesen

Parameters:
Name Type Description
attr String

Der name des gesuchten Attrubutes

Source:
Returns:

Der Wert der 1. selektierten Zeile an der Stelle attr

Type
unknown

getSelection() → {Array.<Object>}

Gibt die selektierten Zeilen zurück

Source:
Returns:

Der Array der selektierten Zeilen.

Type
Array.<Object>

insertStore(response)

Fügt die response der API in den Store und damit in die Liste ein. Falls der Callback this.onCallbackStoreHasChanged definiert ist wird er aaufgerufen

Parameters:
Name Type Description
response Object

Die einzufügende response der API

Source:

onClickApplyFilterButton(evt)

Callback, wird von den Filterbuttons aufgerufen und setzt den Filter. Falls der Callback this.onCallbackApplyFilter definiert ist wird er aufgerufen.

Parameters:
Name Type Description
evt Object

Das Eventobjekt

Source:

onClickResetFilterButton(evt)

Callback, wird von den Filterbuttons aufgerufen und löscht den Filter. Falls der Callback this.onCallbackApplyFilter definiert ist wird er aufgerufen.

Parameters:
Name Type Description
evt Object

Das Eventobjekt

Source:

onClickToolbarButton(domId)

Callback, behandelt click-Events auf die Buttons

Parameters:
Name Type Description
domId Integer

Ed des Buttons auf den geklickt wurde.

Source:

populate(oidPopulate, additionalStoreFetchArgs)

Lädt die Liste (neu) von der API und stellt sie dar.

Parameters:
Name Type Description
oidPopulate OID

Die oid des Objekts von der die Liste abhängt

additionalStoreFetchArgs Object

Optionales Parameter-Objekt für den API-Call der die Listenelemente holt

Source:

reload()

Lädt die Liste (neu) von der API und stellt sie dar. Convinience. Ruft this.populate() mit den bereits gesetzten Parametern für this.oidPopulate und this.additionalStoreFetchArgs auf.

Source:

reset()

Löscht die Liste in dem this.populate mit der oid 0 aufgerufen wird

Source:

setLabel()

Setzt den Haeder der 1. Spalte auf this.firstColumnLabel ergänzt um die Anzahl Zeilen in Klammern

Source:

spaltenSumme(spalte, context, callback)

Berechnet die Spaltensumme für die gegebene Spalte falls diese numerisch ist. Danach wird der Callback aufgerufen.

Parameters:
Name Type Description
spalte Object

Der name der Spalte in der Struktur

context Object

Der Ausführungskontext für den Callback callback

callback Object

Der Callback selber

Source:

storeInit(items)

Initialisiert die Liste, setzt this.rowCount und versucht die this.selecton auf die 1. Zeile zu setzen. Falls der Callback this.onCallbackListIsLoaded existiert wird dieser nach der Initialisierung aufgerufen.

Parameters:
Name Type Description
items Array.<Object>

Der Array der Items für die Liste

Source:

updateStore(response)

Updated das storeitem das mit der 1. Selektion übereinstimmt in Bezug auf alle Attribute von response.* mit Ausnahme der OID. Falls der Callback this.onCallbackStoreHasChanged definiert ist wird er aaufgerufen.

Parameters:
Name Type Description
response Object

Die response der API mit den geänderten Attributen

Source:

updateStoreMultiple(response)

Updated alle storeitems deren OID mit einer OID im response übereinstimmt in Bezug auf alle Attribute von response.item.* mit Ausnahme der OID, unabhängig von der aktuellen selection. Falls der Callback this.onCallbackStoreHasChanged definiert ist wird er aaufgerufen.

Parameters:
Name Type Description
response Object

Die response der API mit den geänderten Attributen

Source: