Module: sdw/templates/inline/toggleListEditor

Dieses Modul definiert die Klasse toggleListEditor, eine Basisklasse für einen Editor für tabellenwertige Objekte.

Die Klasse EditorMetadata stellt die notwendigen Metadaten zur Verfügung.

Die Klasse Editormanager managed die einzelnen Editoren.

Author:
  • sdw.systems
Source:
See:
  • module:sdw/inline/editorMetadata
  • module:sdw/inline/editormanager

Extends

Requires

Members

klasseDomaene

Properties:
Name Type Description
klasseDomaene String

Wird aus den Editormetadaten ausgelesen

Source:

klasseObjekt

Properties:
Name Type Description
klasseObjekt String

Das bezogene Objekt, wird aus den Editormetadaten ausgelesen

Source:

klasseRelation

Properties:
Name Type Description
klasseRelation String

Wird aus den Editormetadaten ausgelesen

Source:

moduleName

Properties:
Name Type Description
moduleName String

Name des Moduls aus lokaler Konstante

Source:

opcDropRelation

Properties:
Name Type Description
opcDropRelation OPCODE

Wird aus den Editormetadaten ausgelesen

Source:

opcTemplateRelation

Properties:
Name Type Description
opcTemplateRelation OPCODE

Wird aus den Editormetadaten ausgelesen

Source:

(inner, constant) dndContainerDomaene :String

Type:
  • String
Default Value:
  • "dndContainerDomaene"
Source:

(inner, constant) dndContainerRelation :String

Type:
  • String
Default Value:
  • "dndContainerRelation"
Source:

Methods

addStoreCommandParams(Parameter-Objekt)

Kann von den abgeleiteten Klassen überschrieben werden um zusätzliche Parameter an das Command-Objekt zu übergeben das die initialie Liste der freien und zugewiesenen Optionen von der API holt. Diese Implementierung macht nichts.

Parameters:
Name Type Description
Parameter-Objekt Object
Source:

afterDrop()

Überschreibt die Implementierung der Basisklasse. Propagiert die Änderungen asynchron an die API und updated den Store. Kritisch sind nur 2 Ereignisse:

  1. Wenn aus Domäne->Relation wird muss ein Template geholt werden und die bisherige Domäneninstanz eine Relation-Instanz werden. Dazu werden die Daten des Templates verwendet: Klasse ändern, OID überschreiben, Listobjects this.klasseObjekt und this.klasseDomaene dranhängen.

  2. Vice versa: Wenn aus Relation->Domäne wird. Hier kommt kein Template sondern nur der Status deleted zurück. In dem Fall die Klasse auf Domäne setzen, die OID aus dem Listobject der Domäne item[this.klasseDomaene][oid ] holen und direkt beim item setzen und die dann überflüssigen Listobjects this.klasseDomaene und this.klasseObjekt aus dem item löschen. this.klasseDomaene kann auch drinbleiben, ist ja ein konstanter Zeiger auf sich selber und in manchen Situationen hilfreich für das Bauen des GUI, z.B. wenn ein Image von der API geladen werden soll. Bleibt also drin.

Source:

beforeDrop(Quell-dndSource,, nodes, copy, target) → {Boolean}

Wird von der dnd-Source aufgerufen bevor die nodes eingefügt werden und also auch bevor die Creator-Methode läuft. Deshalb können abgeleitete Klassen diese Methode überschreiben um Änderungen am Store vorzunehmen, die sich innerhalb der Creator-Methode auf die neuen nodes auswirken soll. Diese Implementierung hier macht nichts anderes als den Status der neuen Nodes auf den default-Status der Source zu setzen. Falls diese Methode überschrieben wird muss die abgeleitete Klasse sicherstellen, dass das Ändern des StatusFlag hier, also beforeDop erfolgt. Das Ändern des StatusFlag nach dem Drop wird von der Source nicht mehr berücksichtigt!

Parameters:
Name Type Description
Quell-dndSource, dojo/dnd/Source

von der die Nodes gedraged werden

nodes Array.<Object>

Die gedraggten Nodes.

Properties
Name Type Description
data Object

Das data-Objekt, das der Node in der creatorMethode mitbekommen hat.

type Array.<String>

Der type-Array, den der Node in der creatorMethode mitbekommen hat.

copy Boolean

copy==true, move==false

target dojo/dnd/Source

Target-dndSource, in die die Nodes gedraged werden

Source:
Returns:

false==DragDropVorgang wird abgebrochen, true==weitermachen

Type
Boolean

cancel()

Überschreibt die Implementierung der Basisklasse und ruft diese dann als letzte Aktion auf. Vorher wird der Zustand mithilfe von API-Calls wieder auf das beforeImage gesetzt.

  1. Hinzugefügte werden gelöscht
  2. Gelöschte werden wieder hinzugefügt
Source:

createGUIObjects()

Überschreibt die Implementierung der Basisklasse

Source:

creator(storeItem)

Erstellt die Visualisierung der dnd-Items. Achtung: Läuft im Scope der dnd-Source. Der Editor (also diese Klasse hier) muss mit this.delegate angesprochen werden.

Parameters:
Name Type Description
storeItem Object

Das Item, wird durch eine Query aus dem Store zur Verfügung gestellt

Properties
Name Type Description
id UUID

Die id des Items im Store, nicht im Dom!

klasse String

Die fachliche Klasse des Items im Store

label String

Der Anzeigename des Items wie er auf der Oberfläche und im Avatar erscheinen soll

oid OID

Die oid des Items im Store

Source:

dispose()

Überschreibt die Implementierung der Basisklasse Löscht die lokalen Objekte und ruft dann die Implementierung der Basisklasse auf.

Source:

getAfterImage() → {Object}

Überschreibt die Implementierung der Basisklasse. Erzeugt einen Array von n Zeilen, wobei jede Zeile einem Element eines dataItems im store entspricht, der an der Stelle this.statusTag die Konstante this.klasseRelation aufweist.

Source:
Returns:

Das AfterImage

Type
Object

getAfterImageForUpload() → {Object}

Überschreibt die Implementierung der Basisklasse.

Source:
Returns:

dataItem Das upgedatete datatItem für den Store.

Type
Object

getBeforeImage() → {Object}

Überschreibt die Implementierung der Basisklasse. Das beforeImage ist ein Array von Objekten der Art []{}

Source:
Returns:

beforeImage Das beforeImage der datatItems des Store.

Type
Object

getObjektInstanzOID()

Überschreibt die Implementierung der Basisklasse. Zurückgegeben wird die OID des Objektes an dem die abhängigen Objekte dranhängen umdas mal relational auszudrücken. Semantisch gibt es ein Objekt dem andere Objekte über einen R-Typ zugewiesen werden. Welches das betrachtete Objekt ist hängt vom Kontext der Anwendung ab. Grundsätzlich wird erwartet, dass es sich dabei um die OID des TreeItems handelt das gerade aktiv ist. Falls das aber 0 ist handelt es sich um einen Menüknoten im Baum. In dem Fall wird die OID des im Baum nächst höher liegenden Objektes der Klasse this.metadataItem.sub.klasse zurückgegeben.

Source:

hasBeenUpdated(true,)

Überschreibt die Implementierung der Basisklasse

Parameters:
Name Type Description
true, Boolean

wenn etwas geändert worden ist, sonst false.

Source:

isValid() → {Boolen}

Überschreibt die Implementierung der Basisklasse und gibt true zurück

Source:
Returns:

true als Konstante

Type
Boolen

reloadStoreItems()

Lädt die Items erneut in den Store der dnd-Source nachdem alle existierenden items gelöscht wurden. Wird insbesondere von der Filterfunktion aufgerufen wenn sich der Filter geändert hat, denn diese Methode berücksichtigt den Filter.

Source:

setAfterImage()

Sollte von den abgeleiteten Klassen nicht überschrieben werden. Baut eine neue Tabelle zusammen und sezt diese in den divValue, die Basisklasse sorgt dann dafür, dass der Editor ausgeblendet und diese neue Tabelle eingeblendet wird. Der Inhalt der einzelnen Tabellenzelle wird aus dem afterImage ausgelesen.

Source:

setBeforeImage()

Kann von der abgeleiteten Klasse überschrieben werden. Setzt den sichtbaren Wert des Editors auf den Wert vor der Bearbeitung zurück. Wird bei cancel aufgerufen. Diese Implementierung macht gar nichts, in dem Fall setzt die Basisklasse lediglich die Sichtbarkeit des Editors auf false und die des Values auf true. Muss aber überschrieben werden

Source:

setFocus()

Überschreibt die Implementierung der Basisklasse. Diese Implementierung macht gar nichts.

Source:

setNull()

Überschreibt die Implementierung der Basisklasse. Diese Implementierung macht gar nichts, ein generelles alles auf 0 setzen scheint bei einer Liste nicht angebracht.

Source:

setProperties()

Überschreibt die Implementierung der Basisklasse.

Source:

updateStoreInfo()

Aktualisiert die hinter dem Namen des Stores angegebene Anzahl von Options.

Source: