| 1 |
- MWF.xDesktop.requireApp("process.Xform","$Input",null,false);MWF.xApplication.process.Xform.Select=MWF.APPSelect=new Class({Implements:[Events],Extends:MWF.APP$Input,iconStyle:"selectIcon",initialize:function(e,t,s,i){this.node=$(e);this.node.store("module",this);this.json=t;this.form=s;this.field=true},_loadNode:function(){if(this.readonly){this._loadNodeRead()}else{this._loadNodeEdit()}},_loadNodeRead:function(){this.node.empty();var e=this.getOptions();var t=this.getValue();if(t){var s=[];e.each(function(e){var i=e.split("|");var n=i[0];var o=i[1]||n;if(o){if(t.indexOf(o)!=-1){s.push(n)}}});this.node.set("text",s.join(", "))}},_loadNodeEdit:function(){var e=new Element("select");e.set(this.json.properties);e.inject(this.node,"after");this.node.destroy();this.node=e;this.node.set({id:this.json.id,MWFType:this.json.type,styles:{"margin-right":"12px"}});this.setOptions();this.node.addEvent("change",function(){this.validationMode();if(this.validation())this._setBusinessData(this.getInputData("change"))}.bind(this))},getOptions:function(){if(this.json.itemType=="values"){return this.json.itemValues}else{return this.form.Macro.exec(this.json.itemScript.code,this)}return[]},setOptions:function(){var e=this.getOptions();if(!e)e=[];e.each(function(e){var t=e.split("|");var s=t[0];var i=t[1]||s;var n=new Element("option",{value:i,text:s}).inject(this.node)}.bind(this))},_setValue:function(e){if(!this.readonly){this._setBusinessData(e);for(var t=0;t<this.node.options.length;t++){var s=this.node.options[t];if(s.value==e){s.selected=true}else{s.selected=false}}}},getTextData:function(){var e=this.node.getElements("option");var t=[];var s=[];e.each(function(e){if(e.selected){var i=e.get("value");var n=e.get("text");t.push(i||"");s.push(n||i||"")}});if(!t.length)t=[""];if(!s.length)s=[""];return{value:t,text:s}},getInputData:function(){var e=this.node.getElements("option");var t=[];e.each(function(e){if(e.selected){var s=e.get("value");if(s)t.push(s)}});if(!t.length)return null;return t.length==1?t[0]:t},resetData:function(){this.setData(this.getValue())},setData:function(e){this._setBusinessData(e);var t=this.node.getElements("option");t.each(function(t){if(typeOf(e)=="array"){if(e.indexOf(t.get("value"))!=-1){t.set("selected",true)}else{t.set("selected",false)}}else{if(e==t.get("value")){t.set("selected",true)}else{t.set("selected",false)}}})}});
|