en

Dokumentation: xw-Basisfunktionen

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.

    Standardmäßig sind die Funktionen für jQuery UI-Buttons ausgelegt:

    xw.buttonState = { 
        setState: function (jq, enable) { 
            jq.button(enable ? "enable" : "disable"); return jq 
        },
        isEnabled: function (jq) { return !jq.button("option", "disabled") }
    }

    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.
  • xw.filter (Type: function)
    Return: function

    Erstellt eine einfache Filter-Funktion, die als Parameter für die jQuery-Funktion filter() an einem XML-jQuery-Object verwendet werden kann. Siehe hierzu auch Dokumentation zu insertRows() in xw-browse-API.

    Parameter:

    • 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:
    xw.format = function (v, opt, row, parent) {
      var t = xw.optProp(opt, "dt", "string");
      if (t == "date") return xw.formatDate(v);
      else if (t == "datetime") return xw.formatDateTime(v); 
      else if (t == "datetimemin") return xw.formatDateTime(v, false);
      else if (t == "int" && xw.optProp(opt, "grp", true)) return xw.formatInt(v);
      else if (t == "float") return xw.formatFloat(v, opt);
      else if (t == "money") return xw.formatFloat(v, {scale: 2, grp: true});
      else if (t == "bool") { return xw.formatBool(v, opt, row, parent) }
      return v;
    };
    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":
      <myrow>
        <col1>
          <line>Erste Zeile</line>
          <line>Zweite Zeile</line>
        </col1>
      </myrow>
      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.