Module: sdw/templates/inline/editorMetadata

Dieses Modul definiert die Klasse EditorMetadata. Die ist die abstrakte Basisklasse für anwendungsspezifische Editormetadaten die von dieser Klasse abgeleitet werden müssen. EdtorMetadata definiert ein Json-Objekt auf Typebene, das alle relevanten Metadaten bereitstellt um ein Datenobjekt mithilfe der von Editor abgeleiteten Editorenklassen bearbeiten zu können. Darüberhinaus werden Datentypen definiert, Standarddatentypen festgelegt und einige Zugriffsmethoden auf das Metadatenobjekt implementiert.

Author:
  • sdw.systems
Source:
See:

Requires

Members

datatypeBoolean

Properties:
Name Type Description
datatypeBoolean String

Name des Datentyps datatypeBoolean aus lokaler Konstante

Source:

datatypeCurrency

Properties:
Name Type Description
datatypeCurrency String

Name des Datentyps datatypeTable aus lokaler Konstante

Source:

datatypeDate

Properties:
Name Type Description
datatypeDate String

Name des Datentyps datatypeDate aus lokaler Konstante

Source:

datatypeDateRange

Properties:
Name Type Description
datatypeDateRange String

Name des Datentyps datatypeDateRange aus lokaler Konstante

Source:

datatypeFloat

Properties:
Name Type Description
datatypeFloat String

Name des Datentyps datatypeFloat aus lokaler Konstante

Source:

datatypeInteger

Properties:
Name Type Description
datatypeInteger String

Name des Datentyps datatypeInteger aus lokaler Konstante

Source:

datatypeListobject

Properties:
Name Type Description
datatypeListobject String

Name des Datentyps datatypeListobject aus lokaler Konstante

Source:

datatypeMap

Properties:
Name Type Description
datatypeMap String

Name des Datentyps datatypeMap aus lokaler Konstante

Source:

datatypePercent

Properties:
Name Type Description
datatypePercent String

Name des Datentyps datatypePercent aus lokaler Konstante

Source:

datatypeRichtext

Properties:
Name Type Description
datatypeRichtext String

Name des Datentyps datatypeRichtext aus lokaler Konstante

Source:

datatypeString

Properties:
Name Type Description
datatypeString String

Name des Datentyps String aus lokaler Konstante

Source:

datatypeTable

Properties:
Name Type Description
datatypeTable String

Name des Datentyps datatypeTable aus lokaler Konstante

Source:

datatypeText

Properties:
Name Type Description
datatypeText String

Name des Datentyps datatypeText aus lokaler Konstante

Source:

datatypeTime

Properties:
Name Type Description
datatypeTime String

Name des Datentyps datatypeTime aus lokaler Konstante

Source:

datatypeTimestamp

Properties:
Name Type Description
datatypeTimestamp String

Name des Datentyps datatypeTimestamp aus lokaler Konstante

Source:

datatypeTimestampRange

Properties:
Name Type Description
datatypeTimestampRange String

Name des Datentyps datatypeTimestampRange aus lokaler Konstante

Source:

(private) debug

siehe Konstruktor

Source:

defaultDatatypes

Properties:
Name Type Description
defaultDatatypes Object

Array der Defaultdatentypen aus lokaler Konstante

Source:

editorCheckbox

Properties:
Name Type Description
editorCheckbox String

Name des editorClassCheckbox aus lokaler Konstante

Source:

editorCurrency

Properties:
Name Type Description
editorCurrency String

Name des editorCurrency aus lokaler Konstante

Source:

editorDate

Properties:
Name Type Description
editorDate String

Name des editorDate aus lokaler Konstante

Source:

editorDateRange

Properties:
Name Type Description
editorClassDateRange String

Name des editorClassDateRange aus lokaler Konstante

Source:

editorDayDateTime

Properties:
Name Type Description
editorDayDateTime String

Name des Standardeditors editorDayDateTime aus lokaler Konstante

Source:

editorListbox

Properties:
Name Type Description
editorListbox String

Name des Standardeditors editorListbox aus lokaler Konstante

Source:

editorNumberSpinner

Properties:
Name Type Description
editorNumberSpinner String

Name des editorNumberSpinner aus lokaler Konstante

Source:

editorPercent

Properties:
Name Type Description
editorPercent String

Name des editorPercent aus lokaler Konstante

Source:

editorRichText

Properties:
Name Type Description
editorRichText String

Name des editorClassRichText aus lokaler Konstante

Source:

editorTable

Properties:
Name Type Description
editorTable String

Name des editorTable aus lokaler Konstante

Source:

editorTextarea

Properties:
Name Type Description
editorTextarea String

Name des Standardeditors editorTextarea aus lokaler Konstante

Source:

editorTextbox

Properties:
Name Type Description
editorTextbox String

Name des Standardeditors editorTextbox aus lokaler Konstante

Source:

editorTime

Properties:
Name Type Description
editorTime String

Name des editorTime aus lokaler Konstante

Source:

editorTimestampRange

Properties:
Name Type Description
editorTime String

Name des editorTimestampRange aus lokaler Konstante

Source:

editorToggleList

Properties:
Name Type Description
editorToggleList String

Name des editorToggleList aus lokaler Konstante

Source:

(private) klasse

siehe Konstruktor

Source:

(private) languagePack

siehe Konstruktor

Source:

metadata

Properties:
Name Type Description
metadata Array

Das Metadatenobjekt, ein Array des unten beschrieben Objektes. Muss in der abgeleiteten Klasse überschrieben werden

Properties
Name Type Description
klasse String

Der Name der fachlichen Klasse

labelItems Array

Array von Strings. Auflistung aller items.item (s.u.) aus denen sich das Label, also der angezeigte Name, zusammensetzt. Wird dazu genutzt, Änderungen dieser Attribute der Editormanagerklasse als Array of AfterImages zur Verfügung zu stellen. Diese reicht den Array als letzten Parameter weiter, so dass die aufrufende Klasse den geänderten "Namen" zusammenbauen und in alle betroffenen Views (Kalender, TabNamen, Treenode-Labels, ...) stecken kann.

opcStore String

Opcode der API um die Änderungen an einem fachlichen Objekt dieser Klasse persistent zu machen

groups Array

Array der Gruppen-Objekte. Die Gruppe ist nur eine visuelle Gruppierung der Items in der Gruppe.

Properties
Name Type Description
label String

Eine optionale Überschrift über der Gruppe.

tooltip String

Ein optionaler Tooltip der eingeblendet wird, wenn die Maus über der Überschrift bewegt wird.

items Array

Array der Attribut-Objekte

Properties
Name Type Description
item String

Name des Attributes im JSON

label String

Label des Attributes wie es im Editor angezeigt werden soll

datatype String

Datentyp des Attributes, entweder ein hier definierter Standarddatentyp oder eine anderer, frei wählbarer Datentyp

editor String

Editor, mit dem das Attribut bearbeitet werden soll, entweder ein hier definierter Standardeditor oder ein Customeditor, der von der Klasse Editor oder einer der Standardeditoren abgeleitet sein muss. Der String ist die Bezeichnung des AMD-Moduls der Editorklasse, also z.B. /sdw/template/inline/dayDateTimeEditor. Die Editoren werden vom Editormanager mit dem dojo-Classloader require geladen.

tooltip String

Ein optionaler tooltip der eingeblendet wird, wenn mit der Maus über das Label gefahren wird

alert String

Optionaler Nachfragetext nachdem der Nutzer auf OK geklickt hat. Führt dazu, dass dieses Item nur im Einzelmodus editiert werden kann, falls es sich nicht um eine neues Objekt handelt, dessen Template nur mit default-Werten bestückt ist, deren Änderung keine Nachfrage rechtfertigt.

opcOptionList String

Nur für listBoxEditor und davon abgeleitete Editoren. Opcode mit der die API aufgefordert wird die optionList zur Füllung der Listbox erzeugt

editorargs Object

Argumentobjekt, das in das Argumentobjekt der dijit-GUI-Objektes reingemischt wird. Hier sind alle Argumente erlaubt, die das dijit-GUI-Objekt versteht. Es folgen Beispiele.

Properties
Name Type Description
promptMessage String

Tooltip der bei leerem Objekt zur Eingabe auffordert

missingMessage String

Tooltip der bei fehlender Pflichteingabe zur Eingabe auffordert

required Boolean

[optional, default==true] Hier kann angegeben werden, dass das Attribut leer sein kann. In diesem Fall blendet der zugehörige Editor den clear-Button ein, der den Wert löscht und danch ok aufruft.

sub Object

Beschreibt auf ein Array von Unterobjekten die als Table angezeigt und bearbeitet werden können

Properties
Name Type Description
klasse String

Name der fachlichen Klasse der Unterobjekte

colheader Array.<String>

Namen der Spaltenköpfe

rowheader String

Name einer Eigenschaft der Unterobjekte, die als fester RowHwader verwendet wird

cols Array.<Object>

Array der Spalten

Properties
Name Type Description
item Object

Name der Eigenschaft

datatype String

Name des Datentyps

editor Object

Name des Editors für die Zellen dieser Spalte

css Object

Zusätzliche css-Attribute für diese Spalte

editorArgs Object

Argumentobjekt, siehe Beispiele oben

Source:

moduleName

Properties:
Name Type Description
moduleName String

Name des Moduls aus lokaler Konstante

Source:

Methods

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. Der Konstruktor filtert das MetadataItem heraus, welches die übergebene fachliche Klasse anhand ihres eindeutigen Namens beschreibt und clont dieses Item unter dem Namen metadataKlasse. Alle Zugriffe werden auf dieses geklonte Item umgeleitet. Weiterhin werden die einzelnen Items dieses geklonten Objektes mit UUIDs versehen und es wird ein Index angelegt um auf die Items per UUID zugreifen zu können

Parameters:
Name Type Description
args Object

Argumentobjekt

Properties
Name Type Description
debug Boolean

Debugflag

klasse String

Name der fachlichen Klasse für die Metadaten zur Verfügung gestellt werden sollen

Source:

emdItemFound() → {Boolean}

Prüft, ob es zu einem metadataItem auch ein Item im dataItem gibt. Relativ neues Konzept, aber es kann sein dass das json vom Server bestimmte items einfach nicht enthält die in den metadataItems gelistet sind, z.B. weil bestimmte Atrtibute nur im template, nicht aber in den Instanzen drin sind. Wird vom Inlineeditormanager in der Art verwendet, dass es nur dann eine InliineEditorRow gibt wenn das Item in den Daten vorhanden ist. Ein 2. Aurfut erfolgt in startEditmodeForAllEditableControls um zu verhindern dass Editoren geöffnet sind für die es kein beforeImage gibt. stopEditmodeForAllEditableControls dagegen funktioniert auch ohne überprüfung weil die entspechenden MetadataItems natürlich keinen Zeiger auf einen offenen Editor haben.

Weil nach dem Löschen des letzten items in der itemsliste diese auch verschwindet wird fr diesen Fall immer true zurückgegeben, ansonsten funktionieren die Tableeditoren nicht mehr

Source:
Returns:

true, falls es zu dem metadataItem Daten gibt, ansonsten false.

Type
Boolean

format()

Formatiert das dataItem an der Stelle emd.item unter Berücksichtigung der emd.datatype Information für das GUI

Source:

getControlValue(control, metadataItem) → {String/Boolean}

Liest den Wert de übergebenen Dijit-Controls aus und gibt den Wert so formatiert zurück wie er im XHR in den Params oder Data erwartet wird

Parameters:
Name Type Description
control dijit/form/control

Ein Zeiger auf ein dijit Control

metadataItem Object

Zeiger auf ein EditorMetadata-Fragment dessen datatype-Eigenschaft gebraucht wird

Source:
Returns:

Formatierter Wert für das JSON im XHR-AUfruf

Type
String/Boolean

getItem(emd, itemName) → {Object}

Holt ein emdItem aus dem übergebenen emd-Fragment. Das ist entweder ein item innerhalb einer sub.cols-Struktur oder das 1. gefundene Item innerhalb der groups.row-Struktur. Wird nur vom inlineEditormanager beim bauen der neue Labels aufgerufen damit diese anhand des datatype-Tags des gefundenen items formatiert werden können-

Parameters:
Name Type Description
emd Object

Das Editormetadatafragment in dem nach dem item mit Name itemName gesucht wird

itemName String

Der Name des Items (item:itemName) nach dem gesucht wird

Source:
Returns:

Das gefundene MetadataItem

Type
Object