/*
	Copyright (c) 2004-2008, 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.Transfer"]){
dojo._hasResource["dojox.wire.ml.Transfer"]=true;
dojo.provide("dojox.wire.ml.Transfer");
dojo.provide("dojox.wire.ml.ChildWire");
dojo.provide("dojox.wire.ml.ColumnWire");
dojo.provide("dojox.wire.ml.NodeWire");
dojo.provide("dojox.wire.ml.SegmentWire");
dojo.require("dijit._Widget");
dojo.require("dijit._Container");
dojo.require("dojox.wire._base");
dojo.require("dojox.wire.ml.Action");
dojo.declare("dojox.wire.ml.Transfer",dojox.wire.ml.Action,{source:"",sourceStore:"",sourceAttribute:"",sourcePath:"",type:"",converter:"",delimiter:"",target:"",targetStore:"",targetAttribute:"",targetPath:"",_run:function(){
var _1=this._getWire("source");
var _2=this._getWire("target");
dojox.wire.transfer(_1,_2,arguments);
},_getWire:function(_3){
var _4=undefined;
if(_3=="source"){
_4={object:this.source,dataStore:this.sourceStore,attribute:this.sourceAttribute,path:this.sourcePath,type:this.type,converter:this.converter};
}else{
_4={object:this.target,dataStore:this.targetStore,attribute:this.targetAttribute,path:this.targetPath};
}
if(_4.object){
if(_4.object.length>=9&&_4.object.substring(0,9)=="arguments"){
_4.property=_4.object.substring(9);
_4.object=null;
}else{
var i=_4.object.indexOf(".");
if(i<0){
_4.object=dojox.wire.ml._getValue(_4.object);
}else{
_4.property=_4.object.substring(i+1);
_4.object=dojox.wire.ml._getValue(_4.object.substring(0,i));
}
}
}
if(_4.dataStore){
_4.dataStore=dojox.wire.ml._getValue(_4.dataStore);
}
var _6=undefined;
var _7=this.getChildren();
for(var i in _7){
var _8=_7[i];
if(_8 instanceof dojox.wire.ml.ChildWire&&_8.which==_3){
if(!_6){
_6={};
}
_8._addWire(this,_6);
}
}
if(_6){
_6.object=dojox.wire.create(_4);
_6.dataStore=_4.dataStore;
_4=_6;
}
return _4;
}});
dojo.declare("dojox.wire.ml.ChildWire",dijit._Widget,{which:"source",object:"",property:"",type:"",converter:"",attribute:"",path:"",name:"",_addWire:function(_9,_a){
if(this.name){
if(!_a.children){
_a.children={};
}
_a.children[this.name]=this._getWire(_9);
}else{
if(!_a.children){
_a.children=[];
}
_a.children.push(this._getWire(_9));
}
},_getWire:function(_b){
return {object:(this.object?dojox.wire.ml._getValue(this.object):undefined),property:this.property,type:this.type,converter:this.converter,attribute:this.attribute,path:this.path};
}});
dojo.declare("dojox.wire.ml.ColumnWire",dojox.wire.ml.ChildWire,{column:"",_addWire:function(_c,_d){
if(this.column){
if(!_d.columns){
_d.columns={};
}
_d.columns[this.column]=this._getWire(_c);
}else{
if(!_d.columns){
_d.columns=[];
}
_d.columns.push(this._getWire(_c));
}
}});
dojo.declare("dojox.wire.ml.NodeWire",[dojox.wire.ml.ChildWire,dijit._Container],{titleProperty:"",titleAttribute:"",titlePath:"",_addWire:function(_e,_f){
if(!_f.nodes){
_f.nodes=[];
}
_f.nodes.push(this._getWires(_e));
},_getWires:function(_10){
var _11={node:this._getWire(_10),title:{type:"string",property:this.titleProperty,attribute:this.titleAttribute,path:this.titlePath}};
var _12=[];
var _13=this.getChildren();
for(var i in _13){
var _15=_13[i];
if(_15 instanceof dojox.wire.ml.NodeWire){
_12.push(_15._getWires(_10));
}
}
if(_12.length>0){
_11.children=_12;
}
return _11;
}});
dojo.declare("dojox.wire.ml.SegmentWire",dojox.wire.ml.ChildWire,{_addWire:function(_16,_17){
if(!_17.segments){
_17.segments=[];
}
_17.segments.push(this._getWire(_16));
if(_16.delimiter&&!_17.delimiter){
_17.delimiter=_16.delimiter;
}
}});
}
