Subversion Repositories Applications.papyrus

Rev

Blame | Last modification | View Log | RSS feed

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
        }
});

}