MWF.xApplication=MWF.xApplication||{};MWF.xApplication.process=MWF.xApplication.process||{};MWF.xApplication.process.DictionaryDesigner=MWF.xApplication.process.DictionaryDesigner||{};MWF.APPDD=MWF.xApplication.process.DictionaryDesigner;MWF.require("MWF.widget.Common",null,false);MWF.xDesktop.requireApp("process.DictionaryDesigner","lp."+MWF.language,null,false);MWF.xApplication.process.DictionaryDesigner.Dictionary=new Class({Extends:MWF.widget.Common,Implements:[Options,Events],options:{style:"default",isView:false,showTab:true,types:["object","array","string","number","boolean"]},initialize:function(e,t,i){this.setOptions(i);this.path="/x_component_process_DictionaryDesigner/$Dictionary/";this.cssPath="/x_component_process_DictionaryDesigner/$Dictionary/"+this.options.style+"/css.wcss";this._loadCss();this.designer=e;this.data=t;if(!this.data.data)this.data.data={};this.node=this.designer.designNode;this.tab=this.designer.tab;this.areaNode=new Element("div",{styles:{overflow:"auto"}});this.propertyListNode=this.designer.propertyDomArea;if(this.designer.application)this.data.applicationName=this.designer.application.name;if(this.designer.application)this.data.application=this.designer.application.id;this.isNewDictionary=this.data.id?false:true;this.items=[];this.autoSave();this.designer.addEvent("queryClose",function(){if(this.autoSaveTimerID)window.clearInterval(this.autoSaveTimerID)}.bind(this))},autoSave:function(){this.autoSaveTimerID=window.setInterval(function(){if(!this.autoSaveCheckNode)this.autoSaveCheckNode=this.designer.contentToolbarNode.getElement("#MWFDictionaryAutoSaveCheck");if(this.autoSaveCheckNode){if(this.autoSaveCheckNode.get("checked")){this.save()}}}.bind(this),6e4)},createTitle:function(){this.itemsNode=new Element("div",{styles:this.css.itemsNode}).inject(this.areaNode);this.typesNode=new Element("div",{styles:this.css.typesNode}).inject(this.areaNode);this.valuesNode=new Element("div",{styles:this.css.valuesNode}).inject(this.areaNode);this.itemTitleNode=new Element("div",{styles:this.css.itemTitleNode}).inject(this.itemsNode);this.typeTitleNode=new Element("div",{styles:this.css.typeTitleNode}).inject(this.typesNode);this.valueTitleNode=new Element("div",{styles:this.css.valueTitleNode}).inject(this.valuesNode);this.itemResizeNode=new Element("div",{styles:this.css.itemResizeNode}).inject(this.itemTitleNode);this.typeResizeNode=new Element("div",{styles:this.css.typeResizeNode}).inject(this.typeTitleNode);this.itemTitleTextNode=new Element("div",{styles:this.css.itemTitleTextNode,text:this.designer.lp.item}).inject(this.itemTitleNode);this.typeTitleTextNode=new Element("div",{styles:this.css.typeTitleTextNode,text:this.designer.lp.type}).inject(this.typeTitleNode);this.valueTitleTextNode=new Element("div",{styles:this.css.valueTitleTextNode,text:this.designer.lp.value}).inject(this.valueTitleNode)},load:function(){this.setAreaNodeSize();this.designer.addEvent("resize",this.setAreaNodeSize.bind(this));this.page=this.tab.addTab(this.areaNode,this.data.name||this.designer.lp.newDictionary,!this.data.isNewDictionary&&this.data.id!=this.designer.options.id);this.page.dictionary=this;this.page.addEvent("show",function(){this.designer.dictionaryListAreaNode.getChildren().each(function(e){var t=e.retrieve("dictionary");if(t.id==this.data.id){if(this.designer.currentListDictionaryItem){this.designer.currentListDictionaryItem.setStyles(this.designer.css.listDictionaryItem)}e.setStyles(this.designer.css.listDictionaryItem_current);this.designer.currentListDictionaryItem=e;this.lisNode=e}}.bind(this));this.setPropertyContent()}.bind(this));this.page.addEvent("queryClose",function(){if(this.autoSaveTimerID)window.clearInterval(this.autoSaveTimerID);this.saveSilence();if(this.lisNode)this.lisNode.setStyles(this.designer.css.listScriptItem)}.bind(this));this.page.tabNode.addEvent("dblclick",this.designer.maxOrReturnEditor.bind(this.designer));this.createTitle();this.createRootItem();if(this.options.showTab)this.page.showTabIm()},setPropertyContent:function(){this.designer.propertyIdNode.set("text",this.data.id);this.designer.propertyNameNode.set("value",this.data.name);this.designer.propertyAliasNode.set("value",this.data.alias);this.designer.propertyDescriptionNode.set("value",this.data.description);this.designer.jsonDomNode.empty();MWF.require("MWF.widget.JsonParse",function(){this.jsonParse=new MWF.widget.JsonParse(this.data.data,this.designer.jsonDomNode,this.designer.jsonTextAreaNode);window.setTimeout(function(){this.jsonParse.load()}.bind(this),1)}.bind(this))},setAreaNodeSize:function(){var e=this.node.getSize();var t=this.tab.tabNodeContainer.getSize();var i=0;if(this.searchNode)i=this.searchNode.getSize().y;var s=e.y-t.y-i;this.areaNode.setStyle("height",""+s+"px");if(this.editor)if(this.editor.editor)this.editor.editor.resize()},createRootItem:function(){this.items.push(new MWF.xApplication.process.DictionaryDesigner.Dictionary.item("ROOT",this.data.data,null,0,this,true))},saveSilence:function(){if(!this.isSave){var e=this.designer.propertyNameNode.get("value");var t=this.designer.propertyAliasNode.get("value");var i=this.designer.propertyDescriptionNode.get("value");if(!e){this.designer.notice(this.designer.lp.notice.inputName,"error");return false}this.data.name=e;this.data.alias=t;this.data.description=i;this.isSave=true;this.designer.actions.saveDictionary(this.data,function(e){this.isSave=false;this.data.id=e.data.id;if(callback)callback()}.bind(this),function(e,t,i){this.isSave=false}.bind(this))}},save:function(e){if(!this.isSave){if(this.designer.tab.showPage==this.page){var t=this.designer.propertyNameNode.get("value");var i=this.designer.propertyAliasNode.get("value");var s=this.designer.propertyDescriptionNode.get("value");if(!t||!i){this.designer.notice(this.designer.lp.notice.inputName,"error");return false}this.data.name=t;this.data.alias=i;this.data.description=s}this.isSave=true;this.designer.actions.saveDictionary(this.data,function(t){this.isSave=false;this.designer.notice(this.designer.lp.notice.save_success,"success",this.node,{x:"left",y:"bottom"});this.data.isNewDictionary=false;this.isNewDictionary=false;this.data.id=t.data.id;this.page.textNode.set("text",this.data.name);if(this.lisNode){this.lisNode.getLast().set("text",this.data.name+"("+this.data.alias+")")}if(e)e()}.bind(this),function(e,t,i){this.isSave=false;var s=i+":"+t;if(e)s=e.responseText;MWF.xDesktop.notice("error",{x:"right",y:"top"},"request json error: "+s)}.bind(this))}else{MWF.xDesktop.notice("info",{x:"right",y:"top"},this.designer.lp.isSave)}},loadSearch:function(){if(!this.searchNode){this.createSearchNode()}else{if(this.searchNode.getStyle("display")=="none"){this.searchNode.setStyle("display","block")}else{this.searchNode.setStyle("display","none")}}this.setAreaNodeSize()},createSearchNode:function(){this.searchNode=new Element("div",{styles:this.css.searchNode}).inject(this.areaNode,"before");this.searchInputNode=new Element("div",{styles:this.css.searchInputNode}).inject(this.searchNode);this.searchInput=new Element("input",{styles:this.css.searchInput}).inject(this.searchInputNode);this.searchAction=new Element("div",{styles:this.css.searchAction,text:this.designer.lp.search}).inject(this.searchNode);var e=new Element("div",{styles:this.css.searchLineNode}).inject(this.searchNode);this.nextAction=new Element("div",{styles:this.css.searchNextAction,text:this.designer.lp.next}).inject(this.searchNode);this.searchAction.addEvent("click",function(){this.searchDictionary()}.bind(this));this.nextAction.addEvent("click",function(){this.searchDictionaryNext()}.bind(this))},searchDictionary:function(){var e=this.searchInput.get("value");if(e){this.currentSearchItem=null;if(!this.getSearchItem(e)){}}},searchDictionaryNext:function(){var e=this.searchInput.get("value");if(e){if(!this.getSearchItem(e,null,this.currentSearchItem)){if(!this.getSearchItem(e)){}}}},getSearchItem:function(e,t,i){debugger;var s=t||this.items[0];var n=true;if(i){if(i.type=="object"){if(!i.exp)i.expOrColChildren();if(this.getSearchItem(e,i))return true}s=i.parent;n=false}if(s.type=="object"){if(!s.exp)s.expOrColChildren();for(var o=0;oe.y){this.typeSelectNode.position({relativeTo:this.typeNode,position:"bottomLeft",edge:"bottomLeft"})}this.closeTypeSelectNodeFun=this.closeTypeSelectNode.bind(this);$(document.body).addEvent("mousedown",this.closeTypeSelectNodeFun)},closeTypeSelectNode:function(){this.typeSelectNode.setStyle("display","none");$(document.body).removeEvent("mousedown",this.closeTypeSelectNodeFun)},createTypeSelectNode:function(){var e=this;this.typeSelectNode=new Element("div",{styles:this.css.typeSelectNode});var t=this.dictionary.options.types;if(!this.parent){t=["object","array"];this.typeSelectNode.setStyle("height","50px")}t.each(function(t){var i=new Element("div",{styles:this.css.typeSelectItemNode}).inject(this.typeSelectNode);i.set("text",t);if(this.type==t)i.setStyles(this.css.typeSelectItemNode_over);i.addEvents({mouseover:function(){this.setStyles(e.css.typeSelectItemNode_over)},mouseout:function(){this.setStyles(e.css.typeSelectItemNode)},mousedown:function(t){e.selectedType(this,t)}})}.bind(this));this.typeSelectNode.inject(this.dictionary.node)},selectedType:function(e,t){t.target=null;var i=e.get("text");if(this.type!=i){var s=this;switch(i){case"array":if(this.value!="New Item Value"&&this.value!="New Element Value"){this.dictionary.designer.confirm("warn",t,this.dictionary.designer.lp.notice.changeType,this.dictionary.designer.lp.notice.changeType,300,120,function(){if(s.type=="object"){s.changeTypeObjectToArray(i)}else{s.changeTypePrimitiveToArray(i)}this.close();s.dictionary.jsonParse.loadObjectTree()},function(){this.close()})}else{if(this.type=="object"){this.changeTypeObjectToArray(i)}else{this.changeTypePrimitiveToArray(i)}this.dictionary.jsonParse.loadObjectTree()}break;case"object":if(this.value!="New Item Value"&&this.value!="New Element Value"){this.dictionary.designer.confirm("warn",t,this.dictionary.designer.lp.notice.changeType,this.dictionary.designer.lp.notice.changeType,300,120,function(){if(s.type=="array"){s.changeTypeArrayToObject(i)}else{s.changeTypePrimitiveToObject(i)}this.close();s.dictionary.jsonParse.loadObjectTree()},function(){this.close()})}else{if(this.type=="array"){this.changeTypeArrayToObject(i)}else{this.changeTypePrimitiveToObject(i)}this.dictionary.jsonParse.loadObjectTree()}break;default:if(this.value!="New Item Value"&&this.value!="New Element Value"){this.dictionary.designer.confirm("warn",t,this.dictionary.designer.lp.notice.changeType,this.dictionary.designer.lp.notice.changeTypeDeleteChildren,300,120,function(){if(s.type=="array"){s.changeTypeArrayToPrimitive(i)}else if(s.type=="object"){s.changeTypeObjectToPrimitive(i)}else{s.changeTypePrimitiveToPrimitive(i)}this.close();s.dictionary.jsonParse.loadObjectTree()},function(){this.close()})}else{if(this.type=="array"){this.changeTypeArrayToPrimitive(i)}else if(s.type=="object"){this.changeTypeObjectToPrimitive(i)}else{this.changeTypePrimitiveToPrimitive(i)}this.dictionary.jsonParse.loadObjectTree()}break}}},deleteAllChildren:function(){this.children.each(function(e){e.destroyAllNodes()})},changeTypeObjectToPrimitive:function(e){this.deleteAllChildren();this.children=[];this.childrenItemCreated=false;var t;switch(e){case"string":t="";break;case"number":t=0;break;case"boolean":t=true;break}delete this.parent.value[this.key];this.parent.value[this.key]=t;this.value=t;this.type=e;this.exp=false;this.setNodeText();this.resetNodes()},changeTypeArrayToPrimitive:function(e){this.changeTypeObjectToPrimitive(e)},changeTypePrimitiveToPrimitive:function(e){switch(e){case"string":value=this.value.toString();break;case"number":value=this.value.toFloat();if(isNaN(value))value=0;break;case"boolean":value=true;if(this.value=="false")value=false;break}delete this.parent.value[this.key];this.parent.value[this.key]=value;this.value=value;this.type=e;this.exp=false;this.setNodeText();this.resetNodes()},changeTypePrimitiveToObject:function(e){value={};delete this.parent.value[this.key];this.parent.value[this.key]=value;this.value=value;this.type=e;this.exp=false;this.setNodeText();this.resetNodes()},changeTypeArrayToObject:function(e){this.deleteAllChildren();this.children=[];this.childrenItemCreated=false;var t={};this.value.each(function(e,i){t["ITEM"+i]=e});if(this.parent){delete this.parent.value[this.key];this.parent.value[this.key]=t;this.value=t;this.type=e;this.setNodeText();this.resetNodes();if(this.exp)this.createChildrenItems()}else{this.dictionary.data.data=t;this.dictionary.jsonParse.json=t;this.value=t;this.type=e;this.setNodeText();this.resetNodes();if(this.exp)this.createChildrenItems()}},changeTypePrimitiveToArray:function(e){value=[];delete this.parent.value[this.key];this.parent.value[this.key]=value;this.value=value;this.type=e;this.exp=false;this.setNodeText();this.resetNodes()},changeTypeObjectToArray:function(e){this.deleteAllChildren();this.children=[];this.childrenItemCreated=false;var t=[];Object.each(this.value,function(e,i){t.push(e)});if(this.parent){delete this.parent.value[this.key];this.parent.value[this.key]=t;this.value=t;this.type=e;this.childrenItemCreated=false;this.setNodeText();this.resetNodes();if(this.exp)this.createChildrenItems()}else{this.dictionary.data.data=t;this.dictionary.jsonParse.json=t;this.value=t;this.type=e;this.childrenItemCreated=false;this.setNodeText();this.resetNodes();if(this.exp)this.createChildrenItems()}},editValue:function(){debugger;this.valueTextNode.empty();this.editValueNode=new Element("input",{styles:this.css.itemEditValueNode}).inject(this.valueTextNode);this.editValueNode.set("value",this.value);window.setTimeout(function(){this.editValueNode.focus();this.editValueNode.select();this.editValueNode.addEvents({blur:function(e){this.editValueConfirm(e)}.bind(this),keydown:function(e){if(e.code==13){this.editValueConfirm(e);if(this.nextSibling){this.nextSibling.editKey()}}e.stopPropagation()}.bind(this),mousedown:function(e){e.stopPropagation()}})}.bind(this),10)},editValueConfirm:function(e){var t=this.editValueNode.get("Value");if(this.type=="number"){if(isNaN(parseFloat(t))){this.dictionary.designer.notice(this.dictionary.designer.lp.notice.inputTypeError,"error",this.editValueNode,{x:"left",y:"bottom"},{x:0,y:24});this.editValueNode.setStyles(this.css.itemEditValueNode_error);this.editValueNode.select();e.preventDefault();return false}t=t.toFloat()}this.value=t;this.parent.value[this.key]=this.value;this.editValueNode.destroy();this.editValueNode=null;this.setNodeText();this.dictionary.jsonParse.loadObjectTree()},editKey:function(){this.itemTextNode.empty();this.editKeyNode=new Element("input",{styles:this.css.itemEditValueNode,type:"text"}).inject(this.itemTextNode);this.editKeyNode.set("value",this.key);window.setTimeout(function(){this.editKeyNode.focus();this.editKeyNode.select();this.editKeyNode.addEvents({blur:function(e){this.editKeyConfirm(e)}.bind(this),keydown:function(e){if(e.code==13){this.editKeyConfirm(e);if(this.type!="array"&&this.type!="object"&&this.type!="boolean"){this.editValue()}else{if(this.nextSibling){this.nextSibling.editKey()}}}e.stopPropagation()}.bind(this),mousedown:function(e){e.stopPropagation()}})}.bind(this),10)},editKeyConfirm:function(e){var t=this.editKeyNode.get("Value");if(t!=this.key){if(this.parent.value[t]){this.dictionary.designer.notice(this.dictionary.designer.lp.notice.sameKey,"error",this.editKeyNode,{x:"left",y:"bottom"},{x:0,y:24});this.editKeyNode.setStyles(this.css.itemEditValueNode_error);this.editKeyNode.select();e.preventDefault();return false}if(!isNaN(parseFloat(t))){this.dictionary.designer.notice(this.dictionary.designer.lp.notice.numberKey,"error",this.editKeyNode,{x:"left",y:"bottom"},{x:0,y:24});this.editKeyNode.setStyles(this.css.itemEditValueNode_error);this.editKeyNode.select();e.preventDefault();return false}if(!t){this.dictionary.designer.notice(this.dictionary.designer.lp.notice.emptyKey,"error",this.editKeyNode,{x:"left",y:"bottom"},{x:0,y:24});this.editKeyNode.setStyles(this.css.itemEditValueNode_error);this.editKeyNode.select();e.preventDefault();return false}delete this.parent.value[this.key];this.parent.value[t]=this.value;this.key=t}this.editKeyNode.destroy();this.editKeyNode=null;this.setNodeText();this.dictionary.jsonParse.loadObjectTree()},selectBooleanValue:function(){if(!this.booleanSelectNode)this.createBooleanSelectNode();var e=this.dictionary.node.getSize();this.booleanSelectNode.setStyle("display","block");var t=this.booleanSelectNode.getSize();var i=this.booleanSelectNode.getChildren();for(var s=0;se.y){this.booleanSelectNode.position({relativeTo:this.valueNode,position:"bottomLeft",edge:"bottomLeft"})}this.closeBooleanSelectNodeFun=this.closeBooleanSelectNode.bind(this);$(document.body).addEvent("mousedown",this.closeBooleanSelectNodeFun)},closeBooleanSelectNode:function(){this.booleanSelectNode.setStyle("display","none");$(document.body).removeEvent("mousedown",this.closeBooleanSelectNodeFun)},createBooleanSelectNode:function(){var e=this;this.booleanSelectNode=new Element("div",{styles:this.css.booleanSelectNode});["true","false"].each(function(t){var i=new Element("div",{styles:this.css.typeSelectItemNode}).inject(this.booleanSelectNode);i.set("text",t);if(this.value.toString()==t)i.setStyles(this.css.typeSelectItemNode_over);i.addEvents({mouseover:function(){this.setStyles(e.css.typeSelectItemNode_over)},mouseout:function(){this.setStyles(e.css.typeSelectItemNode)},mousedown:function(t){e.selectedBoolean(this,t)}})}.bind(this));this.booleanSelectNode.inject(this.dictionary.node)},selectedBoolean:function(e,t){var i=e.get("text");var s=i=="false"?false:true;this.value=s;this.parent.value[this.key]=s;this.setNodeText();this.dictionary.jsonParse.loadObjectTree()}});MWF.xApplication.process.DictionaryDesigner.DictionaryReader=new Class({Extends:MWF.xApplication.process.DictionaryDesigner.Dictionary,autoSave:function(){},createRootItem:function(){this.items.push(new MWF.xApplication.process.DictionaryDesigner.Dictionary.ItemReader("ROOT",this.data.data,null,0,this,true))}});MWF.xApplication.process.DictionaryDesigner.Dictionary.ItemReader=new Class({Extends:MWF.xApplication.process.DictionaryDesigner.Dictionary.item,createNewItem:function(e,t,i,s,n,o,a){return new MWF.xApplication.process.DictionaryDesigner.Dictionary.ItemReader(e,t,i,s,n,o,a); },setEvent:function(){this.itemNode.addEvent("click",function(e){this.selected()}.bind(this));this.typeNode.addEvent("click",function(e){this.selected()}.bind(this));this.valueNode.addEvent("click",function(e){this.selected()}.bind(this));if(this.type=="array"||this.type=="object"){this.itemExpColActionNode.addEvents({click:function(){this.expOrColChildren()}.bind(this)})}else{}}});