| 1 |
- MWF.xApplication.process.FormDesigner.Module=MWF.xApplication.process.FormDesigner.Module||{};MWF.require("MWF.widget.Common",null,false);MWF.xDesktop.requireApp("process.FormDesigner","Property",null,false);MWF.xApplication.process.FormDesigner.Module.$Module=MWF.FC$Module=new Class({Extends:MWF.widget.Common,Implements:[Options,Events],options:{style:"default",actions:[{name:"move",icon:"move1.png",event:"mousedown",action:"move",title:MWF.APPFD.LP.formAction.move},{name:"copy",icon:"copy1.png",event:"mousedown",action:"copy",title:MWF.APPFD.LP.formAction.copy},{name:"delete",icon:"delete1.png",event:"click",action:"delete",title:MWF.APPFD.LP.formAction["delete"]}],actionNodeStyles:{width:"16px",height:"16px","margin-left":"2px","margin-right":"2px",float:"left",border:"1px solid #F1F1F1",cursor:"pointer"},propertyPath:"/x_component_process_FormDesigner/Module/Label/label.html"},_getNewId:function(e,t){var o="";if(e){o=e+"_"}if(!t)t=this.moduleName;var i=1;var s=o+t;while(this.form.json.moduleList[s]){s=o+t+"_"+i;i++}return s},load:function(e,t,o){this.json=e;this.node=t;this.node.store("module",this);this.node.setStyles(this.css.moduleNode);this._loadNodeStyles();this._loadTreeNode(o);this._initModule();this.parentContainer=this.treeNode.parentNode.module;this._setEditStyle_custom("id");this.json.moduleName=this.moduleName},_loadNodeStyles:function(){},_loadNodeCustomStyles:function(){this.setCustomStyles()},_loadTreeNode:function(e){var t=this.json.name||this.json.id;var o=this.json.type.substr(this.json.type.lastIndexOf("$")+1,this.json.type.length);var i={expand:true,title:this.json.id,text:"<"+o+"> "+t,icon:""};i.action=function(){if(this.module)this.module.selected()};if(this.nextModule){this.treeNode=this.nextModule.treeNode.insertChild(i)}else{this.treeNode=e.treeNode.appendChild(i)}this.treeNode.module=this},copyStyles:function(e,t){if(!this.json[t])this.json[t]={};Object.each(e,function(e,o){this.json[t][o]=e}.bind(this))},removeStyles:function(e,t){if(this.json[t]){Object.each(e,function(e,o){if(this.json[t][o]&&this.json[t][o]==e){delete this.json[t][o]}}.bind(this))}},setTemplateStyles:function(e){if(e.styles)this.copyStyles(e.styles,"styles");if(e.properties)this.copyStyles(e.properties,"properties")},clearTemplateStyles:function(e){if(e){if(e.styles)this.removeStyles(e.styles,"styles");if(e.properties)this.removeStyles(e.properties,"properties")}},setStyleTemplate:function(){if(this.form.stylesList){if(this.form.json.formStyleType){if(this.form.stylesList[this.form.json.formStyleType]){if(this.form.stylesList[this.form.json.formStyleType][this.moduleName]){this.setTemplateStyles(this.form.stylesList[this.form.json.formStyleType][this.moduleName])}}}}},setAllStyles:function(){this.setPropertiesOrStyles("styles");this.setPropertiesOrStyles("properties");this.reloadMaplist()},_initModule:function(){this.setStyleTemplate();this.setPropertiesOrStyles("styles");this.setPropertiesOrStyles("properties");this._setNodeProperty();this._createIconAction();this._setNodeEvent()},_setNodeProperty:function(){},_createIconAction:function(){if(!this.actionArea){this.actionArea=new Element("div",{styles:{display:"none",position:"absolute","background-color":"#F1F1F1",padding:"1px","padding-right":"0px",border:"1px solid #AAA","box-shadow":"0px 2px 5px #999",opacity:1,"z-index":100}}).inject(this.form.container,"after");this.options.actions.each(function(e){var t=new Element("div",{styles:this.options.actionNodeStyles,title:e.title}).inject(this.actionArea);t.setStyle("background","url("+this.path+this.options.style+"/icon/"+e.icon+") no-repeat left center");t.addEvent(e.event,function(t){this[e.action](t)}.bind(this));t.addEvents({mouseover:function(e){e.target.setStyle("border","1px solid #999")}.bind(this),mouseout:function(e){e.target.setStyle("border","1px solid #F1F1F1")}.bind(this)})}.bind(this));this._createCustomIconAction()}},_createCustomIconAction:function(){},_setActionAreaPosition:function(){var e=this.node.getPosition(this.form.node.getOffsetParent());var t=e.y-25;var o=e.x;this.actionArea.setPosition({x:o,y:t})},_moveTo:function(e){this.parentContainer=e;if(!this.node){this._createNode()}this._resetTreeNode();this.node.inject(e.node)},move:function(e){this._createMoveNode();var t=this.node.getStyle("display");this.node.store("thisDisplay",t);this.node.setStyle("display","none");this._setNodeMove(e)},copy:function(e){this.copyTo().move(e)},copyTo:function(e){if(!e)e=this.form;var t=this.node.clone(true,true);var o=Object.clone(this.json);t.inject(e.node);var i=this.moduleName.capitalize();var s=new MWF["FC"+i](this.form);o.id=s._getNewId();t.set("id",o.id);this.form.json.moduleList[o.id]=o;s.load(o,t,e);return s},delete:function(e){var t=this;this.form.designer.shortcut=false;this.form.designer.confirm("warn",t.node,MWF.APPFD.LP.notice.deleteElementTitle,MWF.APPFD.LP.notice.deleteElement,300,120,function(){t.destroy();t.form.selected();t.form.designer.shortcut=true;this.close()},function(){t.form.designer.shortcut=true;this.close()},null)},_setNodeEvent:function(){if(!this.isSetEvents){this.node.addEvent("click",function(e){if(!this.form.noSelected)this.selected();this.form.noSelected=false;e.stopPropagation()}.bind(this));this.node.addEvent("mouseover",function(e){this.over();e.stopPropagation()}.bind(this));this.node.addEvent("mouseout",function(e){this.unOver();e.stopPropagation()}.bind(this));this.node.addEvent("copy",function(e){this.copyModule(e)});this._setOtherNodeEvent();this.isSetEvents=true}},copyModule:function(e){debugger},_setOtherNodeEvent:function(){},over:function(){if(!this.form.moveModule)if(this.form.currentSelectedModule!=this){this.node.store("normalBorder",this.node.getBorder());this.node.setStyles({"border-width":"1px","border-color":"#4e73ff"})}},unOver:function(){if(!this.form.moveModule)if(this.form.currentSelectedModule!=this){this.node.setStyles({"border-width":"1px","border-color":"#333"});var e=this.node.retrieve("normalBorder");this.node.setStyles(e)}},_showActions:function(){if(this.actionArea){if(this.options.actions.length){this._setActionAreaPosition();this.actionArea.setStyle("display","block")}}},_hideActions:function(){if(this.actionArea)this.actionArea.setStyle("display","none")},selected:function(){debugger;if(this.form.currentSelectedModule){if(this.form.currentSelectedModule==this){return true}else{this.form.currentSelectedModule.unSelected()}}if(this.form.propertyMultiTd){this.form.propertyMultiTd.hide();this.form.propertyMultiTd=null}this.form.unSelectedMulti();this.node.setStyles({"border-width":"1px","border-color":"red"});this._showActions();this.form.currentSelectedModule=this;if(this.treeNode){this.treeNode.selectNode();new Fx.Scroll(this.form.designer.propertyDomScrollArea).toElement(this.treeNode.node)}this.showProperty()},unSelected:function(){this.node.setStyles({"border-width":"1px","border-color":"#333"});var e=this.node.retrieve("normalBorder");this.node.setStyles(e);this._hideActions();this.form.currentSelectedModule=null;this.hideProperty()},selectedMulti:function(){if(this.form.selectedModules.indexOf(this)==-1){this.form.selectedModules.push(this);this.node.setStyle("border-color","red")}},unSelectedMulti:function(){if(this.form.selectedModules.indexOf(this)!=-1){this.form.selectedModules.erase(this);this.node.setStyle("border-color","#333")}},showProperty:function(){if(!this.property){this.property=new MWF.xApplication.process.FormDesigner.Property(this,this.form.designer.propertyContentArea,this.form.designer,{path:this.options.propertyPath,onPostLoad:function(){this.property.show()}.bind(this)});this.property.load()}else{this.property.show()}},hideProperty:function(){if(this.property)this.property.hide()},create:function(e,t){this.json=e;this.json.id=this._getNewId();this._createMoveNode();this._setNodeMove(t)},_createMoveNode:function(){this.moveNode=new Element("div",{MWFType:"label",styles:this.css.moduleNodeMove,text:"Text",events:{selectstart:function(){return false}}}).inject(this.form.container)},_onEnterOther:function(e,t){},_onLeaveOther:function(e,t){},_setNodeMove:function(e){this._setMoveNodePosition(e);var t=[this.form.node].concat(this.form.moduleElementNodeList,this.form.moduleContainerNodeList,this.form.moduleComponentNodeList);var o=new Drag.Move(this.moveNode,{droppables:t,onEnter:function(e,t){var o=t.retrieve("module");if(o)o._dragIn(this);this._onEnterOther(e,t)}.bind(this),onLeave:function(e,t){var o=t.retrieve("module");if(o)o._dragOut(this);this._onLeaveOther(e,t)}.bind(this),onDrag:function(e){this._nodeDrag(e,o)}.bind(this),onDrop:function(e,t){if(t){var o=t.retrieve("module");if(o)o._dragDrop(this);this._nodeDrop()}else{this._dragCancel(e)}}.bind(this),onCancel:function(e){this._dragCancel(e)}.bind(this)});o.start(e);this.form.moveModule=this;this.form.recordCurrentSelectedModule=this.form.currentSelectedModule;this.form.selected()},_setMoveNodePosition:function(e){var t=e.page.x+2;var o=e.page.y+2;this.moveNode.positionTo(t,o)},_getCopyNode:function(){if(!this.copyNode)this._createCopyNode();this.copyNode.setStyles(this.css.moduleNodeShow);return this.copyNode},_createCopyNode:function(){this.copyNode=this.moveNode.clone();this.copyNode.setStyles(this.css.moduleNodeShow);this.copyNode.addEvent("selectstart",function(){return false})},_nodeDrop:function(){if(this.parentContainer){this._dragComplete()}else{this._dragCancel()}},_dragComplete:function(){if(!this.node){this._createNode()}this._resetTreeNode();this.node.inject(this.copyNode,"before");this._initModule();var e=this.node.retrieve("thisDisplay");if(e){this.node.setStyle("display",e)}if(this.copyNode)this.copyNode.destroy();if(this.moveNode)this.moveNode.destroy();this.moveNode=null;this.copyNode=null;this.nextModule=null;this.form.moveModule=null;this.form.json.moduleList[this.json.id]=this.json;this.selected()},_resetTreeNode:function(){if(this.parentContainer){if(this.treeNode){if(this.treeNode.parentNode){var e=this.treeNode.parentNode.module}this.treeNode.destroy()}this._loadTreeNode(this.parentContainer);if(this.treeNode.parentNode){if(!this.treeNode.parentNode.options.expand)this.treeNode.parentNode.expandOrCollapse()}this._resetSubTreeNode(this.node)}},_resetSubTreeNode:function(e){var t=e.getFirst();while(t){var o=t.retrieve("module");if(o)o._resetTreeNode();this._resetSubTreeNode(t);t=t.getNext()}},_createNode:function(){this.node=this.moveNode.clone(true,true);this.node.setStyles(this.css.moduleNode);this.node.set("id",this.json.id);this.node.addEvent("selectstart",function(){return false})},_dragCancel:function(){if(this.node){var e=this.node.retrieve("thisDisplay");if(e){this.node.setStyle("display",e)}this.selected()}else{this.data=null;if(this.form.recordCurrentSelectedModule)this.form.recordCurrentSelectedModule.selected()}if(this.moveNode)this.moveNode.destroy();if(this.copyNode)this.copyNode.destroy();this.copyNode=null;this.moveNode=null;this.form.moveModule=null},_nodeDrag:function(e,t){if(this.inContainer){var o=this.inContainer.node.getCoordinates();var i=t.mouse.now;var s=o.height*.4;var n=o.top.toFloat()+s.toFloat();if(this.inContainer==this.parentContainer){if(this.parentContainer!=this.form){if(i.x>o.left&&i.x<o.right&&i.y<n&&i.y>o.top){this.parentContainer.node.setStyles(this.parentContainer.css.moduleNode);this.parentContainer.node.setStyles(this.parentContainer.json.styles);this.parentContainer._dragInLikeElement(this)}}}else{if(i.x>o.left&&i.x<o.right&&i.y<o.bottom&&i.y>n){this.parentContainer.node.setStyles(this.parentContainer.css.moduleNode);this.parentContainer.node.setStyles(this.parentContainer.json.styles);this.inContainer._dragIn(this)}}}},setPropertiesOrStyles:function(e){if(e=="styles"){this.setCustomStyles()}if(e=="properties"){this.node.setProperties(this.json.properties)}},setCustomNodeStyles:function(e,t){var o=e.getStyle("border");e.clearStyles();e.setStyle("border",o);Object.each(t,function(t,o){var i=/^border\w*/gi;if(!o.test(i)){e.setStyle(o,t)}}.bind(this))},setCustomStyles:function(){var e=this.node.getStyle("border");this.node.clearStyles();this.node.setStyles(this.css.moduleNode);if(this.initialStyles)this.node.setStyles(this.initialStyles);this.node.setStyle("border",e);Object.each(this.json.styles,function(e,t){var o=/^border\w*/gi;if(!t.test(o)){if(t)this.node.setStyle(t,e)}}.bind(this))},_setEditStyle:function(e,t,o){if(e=="name"){var i=this.json.name||this.json.id;var s=this.json.type.substr(this.json.type.lastIndexOf("$")+1,this.json.type.length);this.treeNode.setText("<"+s+"> "+i)}if(e=="id"){if(!this.json.name){var s=this.json.type.substr(this.json.type.lastIndexOf("$")+1,this.json.type.length);this.treeNode.setText("<"+s+"> "+this.json.id)}this.treeNode.setTitle(this.json.id);this.node.set("id",this.json.id)}this._setEditStyle_custom(e,t,o)},reloadMaplist:function(){if(this.property)Object.each(this.property.maplists,function(e,t){e.reload(this.json[t])}.bind(this))},_setEditStyle_custom:function(e,t,o){},getHtml:function(){var e=this.node.clone(true,true);e.clearStyles(true);this.form._clearNoId(e);var t=e.outerHTML;e.destroy();return t},_getSubModuleJson:function(e,t){var o=e.getFirst();while(o){var i=o.retrieve("module");if(i){t[i.json.id]=Object.clone(i.json)}this._getSubModuleJson(o,t);o=o.getNext()}},getJson:function(){var e=Object.clone(this.json);var t={};t[e.id]=e;this._getSubModuleJson(this.node,t);return t}});
|