New file |
0,0 → 1,88 |
if(!dojo._hasResource["dojox.wire.TableAdapter"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. |
dojo._hasResource["dojox.wire.TableAdapter"] = true; |
dojo.provide("dojox.wire.TableAdapter"); |
|
dojo.require("dojox.wire.CompositeWire"); |
|
dojo.declare("dojox.wire.TableAdapter", dojox.wire.CompositeWire, { |
// summary: |
// A composite Wire for table rows |
// description: |
// This class has multiple child Wires for object properties or array |
// elements of a table row. |
// The root object for this class must be an array. |
// When an object with Wires is specified to 'columns' property, they |
// are used to get a row object with property values. |
// When an array of Wires is specified to 'columns' property, they |
// are used to get a row array with element values. |
// The row values are returned in an array. |
// This class only supports getValue(), but not setValue(). |
|
_wireClass: "dojox.wire.TableAdapter", |
|
constructor: function(/*Object*/args){ |
// summary: |
// Initialize properties |
// description: |
// If object properties or array elements specified in 'columns' |
// property are not Wires, Wires are created from them as |
// arguments, with 'parent' property set to this Wire instance. |
// args: |
// Arguments to initialize properties |
// columns: |
// An object or array containing child Wires for column values |
this._initializeChildren(this.columns); |
}, |
|
_getValue: function(/*Array*/object){ |
// summary: |
// Return an array of table row value (object or array) |
// description: |
// This method iterates over an array specified to 'object' |
// argument and calls getValue() method of the child Wires with |
// each element of the array to get a row object or array. |
// Finally, an array with the row objects or arrays are retuned. |
// object: |
// A root array |
// returns: |
// An array of table row value |
if(!object || !this.columns){ |
return object; //Array |
} |
|
var array = object; |
if(!dojo.isArray(array)){ |
array = [array]; |
} |
|
var rows = []; |
for(var i in array){ |
var row = this._getRow(array[i]); |
rows.push(row); |
} |
return rows; //Array |
}, |
|
_setValue: function(/*Array*/object, /*Array*/value){ |
// summary: |
// Not supported |
throw new Error("Unsupported API: " + this._wireClass + "._setValue"); |
}, |
|
_getRow: function(/*Object||Array*/object){ |
// summary: |
// Return an array or object for a table row |
// description: |
// This method calls getValue() method of the child Wires to |
// create a row object or array. |
// returns: |
// An array or object for a table row |
var row = (dojo.isArray(this.columns) ? [] : {}); // array or object |
for(var c in this.columns){ |
row[c] = this.columns[c].getValue(object); |
} |
return row; //Array||Object |
} |
}); |
|
} |