root / trunk / web / dojo / dojox / wire / DataWire.js @ 12
History | View | Annotate | Download (1.7 KB)
1 |
/*
|
---|---|
2 |
Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved.
|
3 |
Available via Academic Free License >= 2.1 OR the modified BSD license.
|
4 |
see: http://dojotoolkit.org/license for details
|
5 |
*/
|
6 |
|
7 |
|
8 |
if(!dojo._hasResource["dojox.wire.DataWire"]){ |
9 |
dojo._hasResource["dojox.wire.DataWire"]=true; |
10 |
dojo.provide("dojox.wire.DataWire");
|
11 |
dojo.require("dojox.wire.Wire");
|
12 |
dojo.declare("dojox.wire.DataWire",dojox.wire.Wire,{_wireClass:"dojox.wire.DataWire",constructor:function(_1){ |
13 |
if(!this.dataStore&&this.parent){ |
14 |
this.dataStore=this.parent.dataStore; |
15 |
} |
16 |
},_getValue:function(_2){ |
17 |
if(!_2||!this.attribute||!this.dataStore){ |
18 |
return _2;
|
19 |
} |
20 |
var _3=_2;
|
21 |
var _4=this.attribute.split("."); |
22 |
for(var i in _4){ |
23 |
_3=this._getAttributeValue(_3,_4[i]);
|
24 |
if(!_3){
|
25 |
return undefined; |
26 |
} |
27 |
} |
28 |
return _3;
|
29 |
},_setValue:function(_5,_6){ |
30 |
if(!_5||!this.attribute||!this.dataStore){ |
31 |
return _5;
|
32 |
} |
33 |
var _7=_5;
|
34 |
var _8=this.attribute.split("."); |
35 |
var _9=_8.length-1; |
36 |
for(var i=0;i<_9;i++){ |
37 |
_7=this._getAttributeValue(_7,_8[i]);
|
38 |
if(!_7){
|
39 |
return undefined; |
40 |
} |
41 |
} |
42 |
this._setAttributeValue(_7,_8[_9],_6);
|
43 |
return _5;
|
44 |
},_getAttributeValue:function(_a,_b){ |
45 |
var _c=undefined; |
46 |
var i1=_b.indexOf("["); |
47 |
if(i1>=0){ |
48 |
var i2=_b.indexOf("]"); |
49 |
var _d=_b.substring(i1+1,i2); |
50 |
_b=_b.substring(0,i1);
|
51 |
var _e=this.dataStore.getValues(_a,_b); |
52 |
if(_e){
|
53 |
if(!_d){
|
54 |
_c=_e; |
55 |
}else{
|
56 |
_c=_e[_d]; |
57 |
} |
58 |
} |
59 |
}else{
|
60 |
_c=this.dataStore.getValue(_a,_b);
|
61 |
} |
62 |
return _c;
|
63 |
},_setAttributeValue:function(_f,_10,_11){ |
64 |
var i1=_10.indexOf("["); |
65 |
if(i1>=0){ |
66 |
var i2=_10.indexOf("]"); |
67 |
var _12=_10.substring(i1+1,i2); |
68 |
_10=_10.substring(0,i1);
|
69 |
var _13=null; |
70 |
if(!_12){
|
71 |
_13=_11; |
72 |
}else{
|
73 |
_13=this.dataStore.getValues(_f,_10);
|
74 |
if(!_13){
|
75 |
_13=[]; |
76 |
} |
77 |
_13[_12]=_11; |
78 |
} |
79 |
this.dataStore.setValues(_f,_10,_13);
|
80 |
}else{
|
81 |
this.dataStore.setValue(_f,_10,_11);
|
82 |
} |
83 |
}}); |
84 |
} |