xw.js ist eine Javascript-Bibliothek mit allgemeinen globalen Funktionen,
die am Objekt "jQuery.fn.xwalk" zur Verfügung stehen. Die Funktionen und Properties
erleichtern den Umgang mit XML im Browser und bieten eine einfache Möglichkeit
zur Lokalisierung und Internationalisierung von Websites und Web-Apps durch die
Verwendung von Standarddatentypen.
Im Folgenden wird zwecks besserer Lesbarkeit vorausgesetzt,
dass "jQuery.fn.xwalk" über die Variable "xw" erreichbar ist, also "xw"
an geeigneter Stelle wie folgt definiert wurde: var xw = jQuery.fn.xwalk;
xw.buttonState (Type: object)
Beinhaltet Funktionen zum Setzen und Abfragen des "enabled"-Status von Buttons,
also ob Buttons anklickbar (enabled) oder "ausgegraut" (disabled) sind.
Sollen andere Buttons verwendet werden, kann hier ein passender Funktionssatz
gesetzt werden (xw.buttonState = {...}).
xw.optProp (Type: function) Return: Typ des gewünschten Property bzw. des default-Werts Liefert den Wert eines Property am übergeben Object "opt". Ist das
Property nicht enthalten, wird der übergebene default-Wert geliefert. Parameter:
opt (Type: object) Object, aus dem ein Property gelesen werden soll.
name (Type: string) Name des zu lesenden Property.
def (Type: beliebig) Zu liefernder default-Wert, wenn das Property nicht vorhanden ist.
name (Type: string) Einfacher Selektor (siehe Parameter "s" in xw.select()).
val (Type: string) Ein Wert, dem das selektierte Element/Attribut entsprechen muss.
Die Funktion ist definiert als xw.filter = function (name, val) { return function () { return xw.select(this, name) == val } };
xw.format (Type: function) Return: string|null Funktion zur Formatierung von Werten in einem Eltern-HTML-Element. Standarddatentypen werden ausgewertet. "xw.format" ist wie folgt definiert: Parameter:
v (Type: string) Der zu formatierende Wert (Rohdaten einer Zelle).
opt (Type: object) Die Metainformationen zur Spalte (siehe Property "meta" (col-Elemente) für die Initialisierung der xw-browse);
die Attribute des col-Elements sind als gleichnamige Properties
verwendbar (Ausnahme: das Attribut "class" ist im Property "cl"
enthalten; wenn kein class-Attribut definiert wurde, enthält "cl"
den Wert des Attributs "s"). Über das Selektor-Property "s" lässt
sich die Spalte identifizieren.
row (Type: element-node) XML-Zeile als element-Knoten. "row" gibt also Zugriff auf
alle Zeilenwerte, womit mehrere Daten der Zeile in einer Zelle
zusammengesetzt/formatiert werden können. Um einen Spaltenwert an
einem XML-Zeilenelement über einen einfachen Selektor (siehe col-Elemente
der Metainformationen) auszulesen, kann die Funktion xw.select() verwendet werden (siehe unten).
parent (Type: jQuery) Das HTML-Zellen-"div"-Element, gekapselt in einem jQuery-Object.
Statt einen String-Wert zurückzugeben, der in die Zelle geschrieben
werden soll, kann hier direkt das Zellen-HTML erweitert werden, z.B.
um ein Bild einzufügen. In diesem Fall muss die Funktion "null"
zurückgeben. Für ein Beispiel siehe die global überschriebene
Funktion "xw.formatBool" im Demo zur xw-browse.
xw.select (Type: function) Return: string Die Funktion liefert den Wert eines Kindelements oder eines Attributs des übergebenen
XML-Element-Knotens anhand eines einfaches Selektors (siehe Initialisierung der
xw-browse: col-Elemente, Attribut "s"). Parameter:
data (Type: XML-element-node) Ein XML-Element-Node, der den zu selektierenden Wert als Attribut
oder in einem direkten Kindelement enthält.
s (Type: string) Einfacher Selektor (Name des Kindelements, das den Wert enthält
oder Name des Attributs mit Präfix "@").
allLines (Type: bool, Default: false) Steuert, ob bei mehrzeiligen enthaltenen Texten alle Zeilen,
oder nur die erste Zeile geliefert werden. Mehrzeilige Texte müssen
in direkten Kindelementen von "data" so enthalten sein, dass jede
Textzeile wiederum in einem direkten Kindelement mit Namen "line" enthalten
ist. Hintergrund ist, dass "normale" Zeilenumbrüche in XML-Textknoten
als "Whitespace" behandelt werden und möglicherweise verloren gehen können.
Beispiel eines mehrzeiligen Textes im Kindelement "col1": Wird false übergeben, wird die Verkürzung auf eine Textzeile
durch Anfügen einer Ellipsis ("…") symbolisiert. Ansonsten werden
die Textzeilen durch das Newlinezeichen ("\n") im Rückgabe-String getrennt.