MWF.xApplication.process.ProcessDesigner.widget = MWF.xApplication.process.ProcessDesigner.widget || {}; MWF.xApplication.process.ProcessDesigner.widget.ConditionEditor = new Class({ Implements: [Options, Events], Extends: MWF.widget.Common, options: { "style": "default", "count": 0, "height": 500, "width": 500, "top": -1, "left": -1 }, initialize: function(node, options){ this.setOptions(options); this.node = $(node); this.path = "../x_component_process_ProcessDesigner/widget/$ConditionEditor/"; this.cssPath = "../x_component_process_ProcessDesigner/widget/$ConditionEditor/"+this.options.style+"/css.wcss"; this._loadCss(); this.loadConditionArea(); this.loadConditionRouter(); this.scripts = {}; }, loadConditionArea: function(){ this.table = new Element("table",{ "border": "0", "cellspacing": "0", "cellpadding": "0", "styles": this.css.conditionTable }).inject(this.node); }, setScriptItem: function(data){ if (typeOf(data).toLowerCase()=="array"){ data.each(function(d){ this.scripts[d.id] = new MWF.process.widget.ScriptEditor.Script(this, d); }.bind(this)); }else{ this.scripts[data.id] = new MWF.process.widget.ScriptEditor.Script(this, data); } }, createActionAreaNode: function(){ this.actionAreaNode = new Element("div", { "styles": this.css.actionAreaNode }).inject(this.node); }, createContentAreaNode: function(){ this.contentAreaNode = new Element("div", { "styles": this.css.contentAreaNode }).inject(this.node); }, loadAction: function(){ this.addScriptActionNode = new Element("div", { "styles": this.css.addScriptActionNode }).inject(this.actionAreaNode); this.addScriptActionNode.addEvent("click", function(){ this.addNewScript(); }.bind(this)); }, addNewScript: function(){ if (!this.scriptEditNode){ this.createNewScriptNode(); this.openEditPanl(); } }, editScript: function(script){ if (!this.scriptEditNode){ this.createNewScriptNode(script.data); this.openEditPanl(script.data); } }, deleteScript: function(script, e){ layout.confirm("warn", e, MWF.LP.process.notice.deleteScriptTitle, MWF.LP.process.notice.deleteScript, 300, 120, function(){ var data = script.data; if (this.scripts[data.id]){ this.fireEvent("queryDelete", [script]); this.scripts[data.id] = null; delete this.scripts[data.id]; script.destroy(); this.fireEvent("postDelete"); this.close(); } }.bind(this), function(){ this.close(); }, null); }, openEditPanl: function(data){ MWF.require("MWF.widget.Panel", function(){ if ((this.options.top==-1) || (this.options.left==-1)){ var position = MWF.getCenter({"x": this.options.width, "y": this.options.height}); this.options.top = position.y; this.options.left = position.x; } this.scriptPanel = new MWF.widget.Panel(this.scriptEditNode, { "title": "script", "isClose": true, "height": this.options.height, "width": this.options.width, "left": this.options.left, "top": this.options.top, "onResize": function(){ this.setPanelSize(this.panelModulePercent); this.options.width = this.scriptPanel.options.width; this.options.height = this.scriptPanel.options.height; }.bind(this), "onCompleteMove": function(){ this.options.left = this.scriptPanel.options.left; this.options.top = this.scriptPanel.options.top; }.bind(this), "onPostClose": function(){ this.scriptPanel = null; this.scriptEditNode = null; }.bind(this) }); this.scriptPanel.load(); this.setPanelSize(); var codeContent = data ? data.html : ""; this.scriptEditor.load(codeContent); }.bind(this)); }, setPanelSize: function(){ var size = this.scriptPanel.content.getSize(); var paddingTopSize = this.scriptPanel.content.getStyle("padding-top").toFloat(); var paddingBottomSize = this.scriptPanel.content.getStyle("padding-bottom").toFloat(); var borderTopSize = this.scriptPanel.content.getStyle("border-top").toFloat(); var borderBottomSize = this.scriptPanel.content.getStyle("border-bottom").toFloat(); var baseNode = this.scriptEditNode.getFirst(); var codeNode = this.scriptEditNode.getLast(); var baseSize = baseNode.getSize(); var baseMarginTop = baseNode.getStyle("margin-top").toFloat(); var baseMarginBottom = baseNode.getStyle("margin-bottom").toFloat(); var baseBorderTop = baseNode.getStyle("border-top").toFloat(); var baseBorderBottom = baseNode.getStyle("border-bottom").toFloat(); var codeMarginTop = codeNode.getStyle("margin-top").toFloat(); var codeMarginBottom = codeNode.getStyle("margin-bottom").toFloat(); var codePaddingTop = codeNode.getStyle("padding-top").toFloat(); var codePaddingBottom = codeNode.getStyle("padding-bottom").toFloat(); var codeBorderTop = codeNode.getStyle("border-top-width").toFloat(); var codeBorderBottom = codeNode.getStyle("border-bottom-width").toFloat(); var codeNodeHeight = size.y - 2 - paddingTopSize - paddingBottomSize - baseSize.y - baseMarginTop - baseMarginBottom - codeMarginTop - codeMarginBottom - codePaddingTop - codePaddingBottom; codeNodeHeight = codeNodeHeight - borderTopSize - borderBottomSize - baseBorderTop - baseBorderBottom - codeBorderTop - codeBorderBottom; codeNode.setStyle("height", codeNodeHeight); codeNode.getPrevious().setStyle("height", codeNodeHeight); }, createNewScriptNode: function(data){ this.scriptEditNode = new Element("div", { "styles": this.css.scriptEditNode }); this.setCreateNewScriptBaseNode(data); this.setCreateNewScriptCodeHelpNode(); this.setCreateNewScriptCodeNode(); }, setCreateNewScriptBaseNode: function(data){ var baseNode = new Element("div", { "styles": this.css.newScriptBaseNode }).inject(this.scriptEditNode); var name = (data) ? data.name: ""; var description = (data) ? data.description: ""; if (data) this.scriptEditNode.store("scriptId", data.id); var html = "
"+MWF.LP.name+" | |
"+MWF.LP.description+" |