Combox.min.js 3.1 KB

1
  1. MWF.xDesktop.requireApp("process.Xform","$Input",null,false);MWF.xApplication.process.Xform.Combox=MWF.APPCombox=new Class({Implements:[Events],Extends:MWF.APP$Input,iconStyle:"selectIcon",options:{moduleEvents:["load","queryLoad","postLoad","commitInput","change"]},initialize:function(t,e,i,s){this.node=$(t);this.node.store("module",this);this.json=e;this.form=i;this.field=true},_loadNode:function(){if(this.readonly){this._loadNodeRead()}else{this._loadNodeEdit()}},_loadNodeRead:function(){this.node.empty()},_loadNodeEdit:function(){this.node.empty();MWF.require("MWF.widget.Combox",function(){this.combox=select=new MWF.widget.Combox({count:this.json.count.toInt()||0,splitStr:this.json.splitStr||",\\s*|;\\s*|,\\s*|;\\s*",splitShow:this.json.splitShow||", ",list:this.getOptions(),onCommitInput:function(t){this.fireEvent("commitInput")}.bind(this),onChange:function(){this.fireEvent("change")}.bind(this),optionsMethod:this._searchOptions()})}.bind(this),false);select.inject(this.node);this.node.set({id:this.json.id,MWFType:this.json.type});this.combox.addEvent("change",function(){this.validationMode();if(this.validation())this._setBusinessData(this.getInputData("change"))}.bind(this))},_searchOptions:function(){if(this.json.itemType==="dynamic"){return function(t,e){var i={value:t,callback:e};this.form.Macro.fire(this.json.itemDynamic.code,this,i)}.bind(this)}else{return null}},getOptions:function(){var t=[];if(this.json.itemType==="values"){t=this.json.itemValues}else if(this.json.itemType==="script"){t=this.form.Macro.exec(this.json.itemScript.code,this)}debugger;if(t.length){var i=[];t.each(function(t){if(typeOf(t)==="object"){i.push(t)}else{t=t.toString();arr=t.split("|");var e={text:"",keyword:"",value:""};switch(arr.length){case 0:break;case 1:e.text=arr[0];e.keyword=arr[0];e.value=arr[0];break;case 2:e.text=arr[0];e.keyword=arr[0];e.value=arr[1];break;case 3:e.text=arr[0];e.keyword=arr[1];e.value=arr[2];break;default:e.text=arr[0];e.keyword=arr[1];e.value=arr[2]}i.push(e)}}.bind(this));return i}return[]},setData:function(t){this._setBusinessData(t);this._setValue(t)},_setValue:function(s){if(!s)s=[];if(s.length==1&&!s[0])s=[];if(typeOf(s)!=="array")s=[s];if(this.combox){this.combox.clear();comboxValues=[];s.each(function(t){if(type(t)==="object"){comboxValues.push({text:t.text||t.title||t.subject||t.name,value:t})}else{comboxValues.push(t.toString())}}.bind(this));this.combox.addNewValues(comboxValues)}else{s.each(function(t,e){var i="";if(type(t)==="object"){i=t.text||t.title||t.subject||t.name}else{i=t.toString()}if(e<s.length-1)i+=this.json.splitShow;new Element("div",{styles:{float:"left","margin-right":"5px"},text:i}).inject(this.node.getFirst()||this.node)}.bind(this))}},resetOption:function(){if(this.combox){var t=this.getOptions();this.combox.setOptions({list:t})}},addOption:function(t,e){if(this.combox){var i=this.getOptions();i.push({text:t,value:e});this.combox.setOptions({list:i})}},getInputData:function(){if(this.combox)return this.combox.getData();return this._getBusinessData()},getTextData:function(){return this.node.get("text")},resetData:function(){this.setData(this.getValue())}});