12345678 |
- /*
- Copyright (c) 2004-2009, The Dojo Foundation All Rights Reserved.
- Available via Academic Free License >= 2.1 OR the modified BSD license.
- see: http://dojotoolkit.org/license for details
- */
- if(!dojo._hasResource["dojox.wire.ml.util"]){dojo._hasResource["dojox.wire.ml.util"]=true;dojo.provide("dojox.wire.ml.util");dojo.require("dojox.xml.parser");dojo.require("dojox.wire.Wire");dojox.wire.ml._getValue=function(_1,_2){if(!_1){return undefined;}var _3=undefined;if(_2&&_1.length>=9&&_1.substring(0,9)=="arguments"){_3=_1.substring(9);return new dojox.wire.Wire({property:_3}).getValue(_2);}var i=_1.indexOf(".");if(i>=0){_3=_1.substring(i+1);_1=_1.substring(0,i);}var _4=(dijit.byId(_1)||dojo.byId(_1)||dojo.getObject(_1));if(!_4){return undefined;}if(!_3){return _4;}else{return new dojox.wire.Wire({object:_4,property:_3}).getValue();}};dojox.wire.ml._setValue=function(_5,_6){if(!_5){return;}var i=_5.indexOf(".");if(i<0){return;}var _7=this._getValue(_5.substring(0,i));if(!_7){return;}var _8=_5.substring(i+1);var _9=new dojox.wire.Wire({object:_7,property:_8}).setValue(_6);};dojo.declare("dojox.wire.ml.XmlElement",null,{constructor:function(_a){if(dojo.isString(_a)){_a=this._getDocument().createElement(_a);}this.element=_a;},getPropertyValue:function(_b){var _c=undefined;if(!this.element){return _c;}if(!_b){return _c;}if(_b.charAt(0)=="@"){var _d=_b.substring(1);_c=this.element.getAttribute(_d);}else{if(_b=="text()"){var _e=this.element.firstChild;if(_e){_c=_e.nodeValue;}}else{var _f=[];for(var i=0;i<this.element.childNodes.length;i++){var _10=this.element.childNodes[i];if(_10.nodeType===1&&_10.nodeName==_b){_f.push(new dojox.wire.ml.XmlElement(_10));}}if(_f.length>0){if(_f.length===1){_c=_f[0];}else{_c=_f;}}}}return _c;},setPropertyValue:function(_11,_12){var i;var _13;if(!this.element){return;}if(!_11){return;}if(_11.charAt(0)=="@"){var _14=_11.substring(1);if(_12){this.element.setAttribute(_14,_12);}else{this.element.removeAttribute(_14);}}else{if(_11=="text()"){while(this.element.firstChild){this.element.removeChild(this.element.firstChild);}if(_12){_13=this._getDocument().createTextNode(_12);this.element.appendChild(_13);}}else{var _15=null;var _16;for(i=this.element.childNodes.length-1;i>=0;i--){_16=this.element.childNodes[i];if(_16.nodeType===1&&_16.nodeName==_11){if(!_15){_15=_16.nextSibling;}this.element.removeChild(_16);}}if(_12){if(dojo.isArray(_12)){for(i in _12){var e=_12[i];if(e.element){this.element.insertBefore(e.element,_15);}}}else{if(_12 instanceof dojox.wire.ml.XmlElement){if(_12.element){this.element.insertBefore(_12.element,_15);}}else{_16=this._getDocument().createElement(_11);_13=this._getDocument().createTextNode(_12);_16.appendChild(_13);this.element.insertBefore(_16,_15);}}}}}},toString:function(){var s="";if(this.element){var _17=this.element.firstChild;if(_17){s=_17.nodeValue;}}return s;},toObject:function(){if(!this.element){return null;}var _18="";var obj={};var _19=0;var i;for(i=0;i<this.element.childNodes.length;i++){var _1a=this.element.childNodes[i];if(_1a.nodeType===1){_19++;var o=new dojox.wire.ml.XmlElement(_1a).toObject();var _1b=_1a.nodeName;var p=obj[_1b];if(!p){obj[_1b]=o;}else{if(dojo.isArray(p)){p.push(o);}else{obj[_1b]=[p,o];}}}else{if(_1a.nodeType===3||_1a.nodeType===4){_18+=_1a.nodeValue;}}}var _1c=0;if(this.element.nodeType===1){_1c=this.element.attributes.length;for(i=0;i<_1c;i++){var _1d=this.element.attributes[i];obj["@"+_1d.nodeName]=_1d.nodeValue;}}if(_19===0){if(_1c===0){return _18;}obj["text()"]=_18;}return obj;},_getDocument:function(){if(this.element){return (this.element.nodeType==9?this.element:this.element.ownerDocument);}else{return dojox.xml.parser.parse();}}});}
|