Blame | Last modification | View Log | RSS feed
if(!dojo._hasResource["dojox.wire.CompositeWire"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code.dojo._hasResource["dojox.wire.CompositeWire"] = true;dojo.provide("dojox.wire.CompositeWire");dojo.require("dojox.wire._base");dojo.require("dojox.wire.Wire");dojo.declare("dojox.wire.CompositeWire", dojox.wire.Wire, {// summary:// A Wire for composite values in object or array// description:// This class has multiple child Wires for object properties or array// elements.// When an object with Wires is specified to 'children' property, they// are used to get or set an object with property values.// When an array of Wiares is specified to 'children' property, they// are used to get or set an array with element values._wireClass: "dojox.wire.CompositeWire",constructor: function(/*Object*/args){// summary:// Initialize properties// description:// If object properties or array elements specified in 'children'// property are not Wires, Wires are created from them as// arguments, with 'parent' property set to this Wire instance.// args:// Arguments to initialize properties// children:// An object or array containing child Wiresthis._initializeChildren(this.children);},_getValue: function(/*Object||Array*/object){// summary:// Return an object with property values or an array with element// values// description:// This method calls getValue() method of the child Wires with// 'object' argument and returns an object with the values as// properties or an arary of the values as elements.// object:// A root object// returns:// An object or array with valuesif(!object || !this.children){return object; //Object||Array}var value = (dojo.isArray(this.children) ? [] : {}); // array or objectfor(var c in this.children){value[c] = this.children[c].getValue(object);}return value;//Object||Array},_setValue: function(/*Object||Array*/object, /*Object||Array*/value){// summary:// Set an object properties or an array elements to an object// desription:// This method calls setValues() method of the child Wires with// a corresponding property or element in 'value' argument and// 'object' argument.// object:// A root object// value:// An object or array with values to set// returns:// 'object'if(!object || !this.children){return object; //Object||Array}for(var c in this.children){this.children[c].setValue(value[c], object);}return object; //Object||Array},_initializeChildren: function(/*Object||Array*/children){// summary:// Initialize child Wires// description:// If object properties or array elements specified in 'children'// argument are not Wires, Wires are created from them as// arguments, with 'parent' property set to this Wire instance.// children:// An object or array containing child Wiresif(!children){return; //undefined}for(var c in children){var child = children[c];child.parent = this;if(!dojox.wire.isWire(child)){children[c] = dojox.wire.create(child);}}}});}