| 1 |
- MWF.xApplication=MWF.xApplication||{};MWF.xApplication.cms=MWF.xApplication.cms||{};MWF.xApplication.cms.DictionaryDesigner=MWF.xApplication.cms.DictionaryDesigner||{};MWF.CMSDD=MWF.xApplication.cms.DictionaryDesigner;MWF.require("MWF.widget.Common",null,false);MWF.xDesktop.requireApp("cms.DictionaryDesigner","lp."+MWF.language,null,false);MWF.xApplication.cms.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_cms_DictionaryDesigner/$Dictionary/";this.cssPath="/x_component_cms_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:"hidden"}});MWF.require("MWF.widget.ScrollBar",function(){new MWF.widget.ScrollBar(this.areaNode,{distance:100})}.bind(this));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=e.y-t.y;this.areaNode.setStyle("height",""+i+"px");if(this.editor)if(this.editor.editor)this.editor.editor.resize()},createRootItem:function(){this.items.push(new MWF.xApplication.cms.DictionaryDesigner.Dictionary.item("ROOT",this.data.data,null,0,this,true))},saveSilence:function(){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.designer.actions.saveDictionary(this.data,function(e){this.data.id=e.data.id;if(callback)callback()}.bind(this))},save:function(t){if(this.designer.tab.showPage==this.page){var e=this.designer.propertyNameNode.get("value");var i=this.designer.propertyAliasNode.get("value");var s=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=i;this.data.description=s;this.data.appId=this.data.application}this.designer.actions.saveDictionary(this.data,function(e){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=e.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(t)t()}.bind(this))},saveAs:function(){},explode:function(){},implode:function(){}});MWF.xApplication.cms.DictionaryDesigner.Dictionary.item=new Class({initialize:function(e,t,i,s,n,o,a){this.key=e;this.value=t;this.parent=i;this.level=s;this.dictionary=n;this.exp=o||false;this.nextSibling=a;this.children=[];this.childrenItemCreated=false;this.css=this.dictionary.css;this.type=typeOf(this.value);this.load()},load:function(){this.createNodes();this.setNodeText();this.setEvent();if(this.exp)this.createChildrenItems()},createNodes:function(){this.itemNode=new Element("div",{styles:this.css.itemNode});this.typeNode=new Element("div",{styles:this.css.typeNode});this.valueNode=new Element("div",{styles:this.css.valueNode});var e=10;e=e+this.level*20;this.itemNode.setStyle("padding-left",""+e+"px");this.itemActionsAreaNode=new Element("div",{styles:this.css.itemActionsAreaNode}).inject(this.itemNode);if(this.type=="array"||this.type=="object"||this.parent&&this.parent.type=="array"){this.itemAddActionNode=new Element("div",{styles:this.css.itemAddActionNode}).inject(this.itemActionsAreaNode)}if(this.parent)this.itemDelActionNode=new Element("div",{styles:this.css.itemDelActionNode}).inject(this.itemActionsAreaNode);if(this.type=="array"||this.type=="object"){this.itemExpColActionNode=new Element("div",{styles:this.css.itemExpColActionNode}).inject(this.itemNode);if(this.exp){this.itemExpColActionNode.setStyle("background-image","url("+"/x_component_cms_DictionaryDesigner/$Dictionary/default/icon/col.png)")}else{this.itemExpColActionNode.setStyle("background-image","url("+"/x_component_cms_DictionaryDesigner/$Dictionary/default/icon/exp.png)")}}this.typeActionsAreaNode=new Element("div",{styles:this.css.typeActionsAreaNode}).inject(this.typeNode);this.typeSelActionNode=new Element("div",{styles:this.css.typeSelActionNode}).inject(this.typeActionsAreaNode);this.valueActionsAreaNode=new Element("div",{styles:this.css.valueActionsAreaNode}).inject(this.valueNode);if(this.type=="boolean")this.valueSelActionNode=new Element("div",{styles:this.css.valueSelActionNode}).inject(this.valueActionsAreaNode);this.itemTextNode=new Element("div",{styles:this.css.itemTextNode}).inject(this.itemNode);this.typeTextNode=new Element("div",{styles:this.css.typeTextNode}).inject(this.typeNode);this.valueTextNode=new Element("div",{styles:this.css.valueTextNode}).inject(this.valueNode);if(this.nextSibling){this.itemNode.inject(this.nextSibling.itemNode,"before");this.typeNode.inject(this.nextSibling.typeNode,"before");this.valueNode.inject(this.nextSibling.valueNode,"before")}else{if(this.parent){if(this.parent.children.length){var t=this.parent.children.getLast();this.itemNode.inject(t.itemNode,"after");this.typeNode.inject(t.typeNode,"after");this.valueNode.inject(t.valueNode,"after")}else{this.itemNode.inject(this.parent.itemNode,"after");this.typeNode.inject(this.parent.typeNode,"after");this.valueNode.inject(this.parent.valueNode,"after")}}else{this.itemNode.inject(this.dictionary.itemsNode);this.typeNode.inject(this.dictionary.typesNode);this.valueNode.inject(this.dictionary.valuesNode)}}},resetNodes:function(){this.itemTextNode.removeEvents("mousedown");this.valueTextNode.removeEvents("mousedown");if(this.type=="array"||this.type=="object"){if(!this.itemExpColActionNode){this.itemExpColActionNode=new Element("div",{styles:this.css.itemExpColActionNode}).inject(this.itemTextNode,"before");if(this.exp){this.itemExpColActionNode.setStyle("background-image","url("+"/x_component_cms_DictionaryDesigner/$Dictionary/default/icon/col.png)")}else{this.itemExpColActionNode.setStyle("background-image","url("+"/x_component_cms_DictionaryDesigner/$Dictionary/default/icon/exp.png)")}this.itemExpColActionNode.addEvents({click:function(){this.expOrColChildren()}.bind(this)})}}else{if(this.itemExpColActionNode){this.itemExpColActionNode.destroy();this.itemExpColActionNode=null}if(this.type!="boolean")this.valueTextNode.addEvent("mousedown",function(e){this.editValue()}.bind(this))}if(this.type=="array"||this.type=="object"||this.parent&&this.parent.type=="array"){if(!this.itemAddActionNode){this.itemAddActionNode=new Element("div",{styles:this.css.itemAddActionNode}).inject(this.itemActionsAreaNode);this.itemAddActionNode.addEvent("click",function(e){this.addItem(e)}.bind(this))}}else{if(this.itemAddActionNode)this.itemAddActionNode.destroy();this.itemAddActionNode=null}if(this.type=="boolean"){if(!this.valueSelActionNode)this.valueSelActionNode=new Element("div",{styles:this.css.valueSelActionNode}).inject(this.valueActionsAreaNode);this.valueSelActionNode.addEvent("click",function(){this.selectBooleanValue()}.bind(this));this.valueTextNode.addEvent("click",function(){this.selectBooleanValue()}.bind(this))}if(this.parent){if(this.parent.type!="array"){this.itemTextNode.addEvent("mousedown",function(e){this.editKey()}.bind(this))}}},setNodeText:function(){var e=this.key;if(this.parent)if(this.parent.type=="array")e="["+e+"]";this.itemTextNode.set("text",e);this.typeTextNode.set("text",this.type);switch(this.type){case"array":this.valueTextNode.setStyles(this.css.valueTextNode);this.valueTextNode.set("text",""+this.value.length+" Items");break;case"object":var t=0;Object.each(this.value,function(){t++});this.valueTextNode.setStyles(this.css.valueTextNode);this.valueTextNode.set("text",""+t+" Items");break;default:this.valueTextNode.setStyles(this.css.valueTextNode_edit);this.valueTextNode.set("text",this.value);break}},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));this.typeSelActionNode.addEvent("click",function(e){this.selectType()}.bind(this));this.typeTextNode.addEvent("click",function(e){this.selectType()}.bind(this));this.itemNode.addEvents({mouseover:function(){this.itemActionsAreaNode.fade("in")}.bind(this),mouseout:function(){this.itemActionsAreaNode.fade("out")}.bind(this)});if(this.itemAddActionNode)this.itemAddActionNode.addEvent("click",function(e){this.addItem(e)}.bind(this));if(this.itemDelActionNode)this.itemDelActionNode.addEvent("click",function(e){this.delItem(e)}.bind(this));if(this.type=="array"||this.type=="object"){this.itemExpColActionNode.addEvents({click:function(){this.expOrColChildren()}.bind(this)})}else{if(this.type!="boolean")this.valueTextNode.addEvent("mousedown",function(e){this.editValue()}.bind(this))}if(this.parent){if(this.parent.type!="array"){this.itemTextNode.addEvent("mousedown",function(e){this.editKey()}.bind(this))}}if(this.type=="boolean"){this.valueSelActionNode.addEvent("click",function(){this.selectBooleanValue()}.bind(this));this.valueTextNode.addEvent("click",function(){this.selectBooleanValue()}.bind(this))}},expOrColChildren:function(){if(this.exp){this.colChildren();this.itemExpColActionNode.setStyle("background-image","url("+"/x_component_cms_DictionaryDesigner/$Dictionary/default/icon/exp.png)");this.exp=false}else{this.expChildren();this.itemExpColActionNode.setStyle("background-image","url("+"/x_component_cms_DictionaryDesigner/$Dictionary/default/icon/col.png)");this.exp=true}},colChildren:function(){this.children.each(function(e){e.colChildren();e.colChildrenNode()})},expChildren:function(){this.createChildrenItems();this.children.each(function(e){if(e.exp)e.expChildren();e.expChildrenNode()})},colChildrenNode:function(){this.itemNode.setStyle("display","none");this.typeNode.setStyle("display","none");this.valueNode.setStyle("display","none")},expChildrenNode:function(){this.itemNode.setStyle("display","block");this.typeNode.setStyle("display","block");this.valueNode.setStyle("display","block")},unSelected:function(){this.itemNode.setStyles(this.css.itemNode);this.typeNode.setStyles(this.css.typeNode);this.valueNode.setStyles(this.css.valueNode);this.dictionary.currentSelectedItem=null},selected:function(){if(this.dictionary.currentSelectedItem!=this){if(this.dictionary.currentSelectedItem)this.dictionary.currentSelectedItem.unSelected();this.itemNode.setStyles(this.css.itemNode_selected);this.typeNode.setStyles(this.css.typeNode_selected);this.valueNode.setStyles(this.css.valueNode_selected);this.listDataItems();this.dictionary.currentSelectedItem=this}},listDataItems:function(){this.dictionary.propertyListNode.empty();switch(this.type){case"array":this.value.each(function(e,t){this.createDataListItem("["+t+"]",e.toString())}.bind(this));break;case"object":Object.each(this.value,function(e,t){this.createDataListItem(t,e.toString())}.bind(this));break}},createDataListItem:function(e,t){var i=new Element("div",{styles:this.css.dataListItemNode}).inject(this.dictionary.propertyListNode);var s=new Element("div",{styles:this.css.dataListItemKeyNode,text:e,title:e}).inject(i);var n=new Element("div",{styles:this.css.dataListItemValueNode,text:t,title:t}).inject(i)},createNewItem:function(e,t,i,s,n,o,a){return new MWF.xApplication.cms.DictionaryDesigner.Dictionary.item(e,t,i,s,n,o,a)},createChildrenItems:function(){if(!this.childrenItemCreated){switch(this.type){case"array":this.value.each(function(e,t){this.children.push(this.createNewItem(t,e,this,this.level+1,this.dictionary,false))}.bind(this));break;case"object":Object.each(this.value,function(e,t){this.children.push(this.createNewItem(t,e,this,this.level+1,this.dictionary,false))}.bind(this));break;default:break}this.childrenItemCreated=true}},addItem:function(e){if(!this.parent){this.createChildrenItems();this.addChild()}else{if(this.exp){this.addChild()}else{this.addSibling()}}this.dictionary.jsonParse.loadObjectTree()},addChild:function(){var e;if(this.type=="array"){var t=this.value.length;var i="New Element Value";this.value.push(i);e=this.createNewItem(t,i,this,this.level+1,this.dictionary,false)}if(this.type=="object"){var s="NewItem";var n=0;while(this.value[s]!==undefined){n++;s="NewItem"+n}var o="New Item Value";this.value[s]=o;e=this.createNewItem(s,o,this,this.level+1,this.dictionary,false)}if(this.children.length)this.children[this.children.length-1].nextSibling=e;this.children.push(e)},addSibling:function(){var e=null;var t;if(this.parent.type=="array"){t=this.key;var i="New Element Value";this.parent.value.splice(this.key,0,i);for(var s=this.key;s<this.parent.children.length;s++){var e=this.parent.children[s];e.key=e.key+1;e.setNodeText()}e=this.createNewItem(t,i,this.parent,this.level,this.dictionary,false,this)}else{var n="NewItem";var s=0;while(this.parent.value[n]!=undefined){s++;n="NewItem"+s}var i="New Item Value";this.parent.value[n]=i;var e=this.createNewItem(n,i,this.parent,this.level,this.dictionary,false,this);t=this.parent.children.indexOf(this)}if(t)this.parent.children[t-1].nextSibling=e;this.parent.children.splice(t,0,e)},delItem:function(e){var t=this;this.dictionary.designer.shortcut=false;this.dictionary.designer.confirm("warn",e,this.dictionary.designer.lp.notice.deleteDataTitle,this.dictionary.designer.lp.notice.deleteData,300,120,function(){t.destroy();t.dictionary.jsonParse.loadObjectTree();t.dictionary.designer.shortcut=true;this.close()},function(){t.dictionary.designer.shortcut=true;this.close()})},destroy:function(){var e=this.parent.children.indexOf(this);if(e)this.parent.children[e-1].nextSibling=this.nextSibling;this.destroyAllNodes();this.parent.children.erase(this);if(this.parent.type=="object"){delete this.parent.value[this.key];delete this}if(this.parent.type=="array"){this.parent.value.splice(this.key,1);for(var t=this.key;t<this.parent.children.length;t++){this.parent.children[t].key=this.parent.children[t].key-1;this.parent.children[t].setNodeText()}}this.dictionary.jsonParse.loadObjectTree()},destroyAllNodes:function(){this.children.each(function(e){e.destroyAllNodes()});this.itemNode.destroy();this.typeNode.destroy();this.valueNode.destroy();if(this.typeSelectNode)this.typeSelectNode.destroy()},selectType:function(){if(!this.typeSelectNode)this.createTypeSelectNode();this.typeSelectNode.setStyle("display","block");var e=this.dictionary.node.getSize();var t=this.typeSelectNode.getSize();var i=this.typeSelectNode.getChildren();for(var s=0;s<i.length;s++){if(i[s].get("text")==this.type){i[s].setStyles(this.css.typeSelectItemNode_over)}else{i[s].setStyles(this.css.typeSelectItemNode)}}this.typeSelectNode.position({relativeTo:this.typeNode,position:"upperLeft",edge:"upperLeft"});var n=this.typeSelectNode.getPosition(this.typeSelectNode.getOffsetParent());if(n.y+t.y>e.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 i=this;this.typeSelectNode=new Element("div",{styles:this.css.typeSelectNode});var e=this.dictionary.options.types;if(!this.parent){e=["object","array"];this.typeSelectNode.setStyle("height","50px")}e.each(function(e){var t=new Element("div",{styles:this.css.typeSelectItemNode}).inject(this.typeSelectNode);t.set("text",e);if(this.type==e)t.setStyles(this.css.typeSelectItemNode_over);t.addEvents({mouseover:function(){this.setStyles(i.css.typeSelectItemNode_over)},mouseout:function(){this.setStyles(i.css.typeSelectItemNode)},mousedown:function(e){i.selectedType(this,e)}})}.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 i={};this.value.each(function(e,t){i["ITEM"+t]=e});if(this.parent){delete this.parent.value[this.key];this.parent.value[this.key]=i;this.value=i;this.type=e;this.setNodeText();this.resetNodes();if(this.exp)this.createChildrenItems()}else{this.dictionary.data.data=i;this.dictionary.jsonParse.json=i;this.value=i;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 i=[];Object.each(this.value,function(e,t){i.push(e)});if(this.parent){delete this.parent.value[this.key];this.parent.value[this.key]=i;this.value=i;this.type=e;this.childrenItemCreated=false;this.setNodeText();this.resetNodes();if(this.exp)this.createChildrenItems()}else{this.dictionary.data.data=i;this.dictionary.jsonParse.json=i;this.value=i;this.type=e;this.childrenItemCreated=false;this.setNodeText();this.resetNodes();if(this.exp)this.createChildrenItems()}},editValue:function(){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;s<i.length;s++){if(i[s].get("text")==this.value.toString()){i[s].setStyles(this.css.typeSelectItemNode_over)}else{i[s].setStyles(this.css.typeSelectItemNode)}}this.booleanSelectNode.position({relativeTo:this.valueNode,position:"upperLeft",edge:"upperLeft"});var n=this.booleanSelectNode.getPosition(this.booleanSelectNode.getOffsetParent());if(n.y+t.y>e.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 i=this;this.booleanSelectNode=new Element("div",{styles:this.css.booleanSelectNode});["true","false"].each(function(e){var t=new Element("div",{styles:this.css.typeSelectItemNode}).inject(this.booleanSelectNode);t.set("text",e);if(this.value.toString()==e)t.setStyles(this.css.typeSelectItemNode_over);t.addEvents({mouseover:function(){this.setStyles(i.css.typeSelectItemNode_over)},mouseout:function(){this.setStyles(i.css.typeSelectItemNode)},mousedown:function(e){i.selectedBoolean(this,e)}})}.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.cms.DictionaryDesigner.DictionaryReader=new Class({Extends:MWF.xApplication.cms.DictionaryDesigner.Dictionary,autoSave:function(){},createRootItem:function(){this.items.push(new MWF.xApplication.cms.DictionaryDesigner.Dictionary.ItemReader("ROOT",this.data.data,null,0,this,true))}});MWF.xApplication.cms.DictionaryDesigner.Dictionary.ItemReader=new Class({Extends:MWF.xApplication.cms.DictionaryDesigner.Dictionary.item,createNewItem:function(e,t,i,s,n,o,a){return new MWF.xApplication.cms.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{}}});
|