123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254 |
- MWF.xApplication.process.ProcessDesigner.widget = MWF.xApplication.process.ProcessDesigner.widget || {};
- MWF.xApplication.process.ProcessDesigner.widget.ScriptSelector = new Class({
- Implements: [Options, Events],
- Extends: MWF.widget.Common,
- options: {
- "style": "default",
- "maskNode": $(document.body)
- },
- initialize: function(node, script, app, options){
- this.setOptions(options);
- this.node = $(node);
- this.app = app;
- this.script = script;
- this.path = "../x_component_process_ProcessDesigner/widget/$ScriptSelector/";
- this.cssPath = "../x_component_process_ProcessDesigner/widget/$ScriptSelector/"+this.options.style+"/css.wcss";
- this._loadCss();
- this.selNode = new Element("div", {"styles": this.css.selScriptNode}).inject(this.node, "before");
- this.delNode = new Element("div", {"styles": this.css.delScriptNode}).inject(this.node, "before");
- //this.selNode = new Element("div", {"styles": this.css.selScriptNode, "text": "选择"}).inject(this.node, "before");
- this.node.setStyles(this.css.contentNode);
- //this.node.set("text", script||"");
- this.loadValue(script);
- //this.createEditor();
- //this.addNode.addEvent("click", function(e){
- // this.addScript();
- //}.bind(this));
- this.selNode.addEvent("click", function(e){
- this.editScript();
- }.bind(this));
- this.delNode.addEvent("click", function(e){
- this.delScript();
- }.bind(this));
- },
- loadValue: function(script){
- if (script && script.toString()){
- this.app.actions.getScriptByName(script, this.app.application.id, function(json){
- this.scriptData = json.data;
- this.createScriptNode(script);
- }.bind(this));
- }else{
- this.node.empty();
- this.scriptData = null;
- }
- },
- //createEditor: function(){
- // this.editorNode = new Element("div", {"styles": this.css.editorNode}).inject(this.node, "after");
- // MWF.require("MWF.widget.JavascriptEditor", function(){
- // this.editor = new MWF.widget.JavascriptEditor(this.editorNode);
- // this.editor.load();
- // }.bind(this));
- //},
- delScript: function(){
- this.fireEvent("delete");
- },
- editScript: function(){
- this.loadWindow();
- this.loadContent();
- },
- loadWindow: function(){
- this.options.maskNode.mask({
- "destroyOnHide": true,
- "style": this.css.maskNode
- });
- this.windowNode = new Element("div", {"styles": this.css.containerNode});
- this.titleNode = new Element("div", {"styles": this.css.titleNode,}).inject(this.windowNode);
- this.titleActionNode = new Element("div", {"styles": this.css.titleActionNode}).inject(this.titleNode);
- this.titleTextNode = new Element("div", {"styles": this.css.titleTextNode,"text": "Select Script"}).inject(this.titleNode);
- this.titleActionNode.addEvent("click", function(){
- this.close();
- }.bind(this));
- this.windowContentNode = new Element("div", {"styles": this.css.windowContentNode}).inject(this.windowNode);
- //this.actionNode = new Element("div", {"styles": this.css.actionNode}).inject(this.windowNode);
- //this.loadAction();
- this.windowNode.inject(this.options.maskNode);
- this.windowNode.position({
- relativeTo: this.options.maskNode,
- position: "center",
- edge: "center"
- });
- var size = this.options.maskNode.getSize();
- var nodeSize = this.windowNode.getSize();
- this.windowNode.makeDraggable({
- "handle": this.titleNode,
- "limit": {
- "x": [0, size.x-nodeSize.x],
- "y": [0, size.y-nodeSize.y]
- }
- });
- },
- loadAction: function(){
- this.okActionNode = new Element("button", {
- "styles": this.css.okActionNode,
- "text": this.app.lp.selectorButton.ok
- }).inject(this.actionNode);
- this.cancelActionNode = new Element("button", {
- "styles": this.css.cancelActionNode,
- "text": this.app.lp.selectorButton.cancel
- }).inject(this.actionNode);
- this.okActionNode.addEvent("click", function(){
- this.fireEvent("complete", [this.selectedItems]);
- this.close();
- }.bind(this));
- this.cancelActionNode.addEvent("click", function(){this.close();}.bind(this));
- },
- loadContent: function(){
- //MWF.xDesktop.requireApp("process.ProcessManager", "Actions.RestActions", function(){
- if (!this.restActions) this.restActions = MWF.Actions.get("x_organization_assemble_control");
- //if (!this.restActions) this.restActions = new MWF.xApplication.process.ProcessManager.Actions.RestActions();
- this.scriptConfigurator = new MWF.xApplication.process.ProcessDesigner.widget.ScriptSelector.ScriptExplorer(this.windowContentNode, this.app.actions);
- this.scriptConfigurator.app = this.app;
- this.scriptConfigurator.window = this;
- this.scriptConfigurator.load();
- //}.bind(this));
- //this.scriptListNode = new Element("div", {"styles": this.css.scriptListNode}).inject(this.windowContentNode);
- //this.scriptContentNode = new Element("div", {"styles": this.css.scriptContentNode}).inject(this.windowContentNode);
- },
- selected: function(script){
- this.scriptData = script.data;
- this.createScriptNode(script);
- this.fireEvent("selected", [script.data]);
- //this.node.set("text", script.data.name);
- this.close();
- },
- createScriptNode: function(){
- this.node.empty();
- var _self = this;
- this.scriptNode = new Element("div", {
- "styles": {"cursor": "pointer","color": "#0000FF"},
- "text": this.scriptData.name
- }).inject(this.node);
- this.scriptNode.addEvent("click", function(e){this.openScript(e);}.bind(this));
- },
- openScript: function(e){
- var id = this.scriptData.id;
- var _self = this;
- var options = {
- "onQueryLoad": function(){
- this.actions = _self.app.actions;
- this.options.id = id;
- this.application = _self.app.application;
- }
- };
- this.app.desktop.openApplication(e, "process.ScriptDesigner", options);
- },
- close: function(){
- this.windowNode.destroy();
- this.options.maskNode.unmask();
- },
- });
- MWF.xDesktop.requireApp("process.ProcessManager", "ScriptExplorer", null, false);
- MWF.xApplication.process.ProcessDesigner.widget.ScriptSelector.ScriptExplorer = new Class({
- Extends: MWF.xApplication.process.ProcessManager.ScriptExplorer,
- loadToolbar: function(){
- this.toolbarNode = new Element("div", {"styles": this.css.toolbarNode});
- this.toolbarNode.setStyle("height", "40px");
- this.createCreateElementNode();
- this.createElementNode.setStyles({"height": "40px", "width": "40px"});
- this.toolbarNode.inject(this.node);
- },
- loadContentNode: function(){
- this.elementContentNode = new Element("div", {
- "styles": this.css.elementContentNode
- }).inject(this.node);
- this.elementContentListNode = new Element("div", {
- "styles": this.css.elementContentListNode
- }).inject(this.elementContentNode);
- this.setContentSize();
- //this.app.addEvent("resize", function(){this.setContentSize();}.bind(this));
- },
- _getItemObject: function(item){
- return new MWF.xApplication.process.ProcessDesigner.widget.ScriptSelector.ScriptExplorer.Script(this, item)
- },
- });
- MWF.xApplication.process.ProcessDesigner.widget.ScriptSelector.ScriptExplorer.Script = new Class({
- Extends: MWF.xApplication.process.ProcessManager.ScriptExplorer.Script,
- _open: function(e){
- var _self = this;
- var options = {
- "onQueryLoad": function(){
- this.actions = _self.explorer.actions;
- this.category = _self;
- this.options.id = _self.data.id;
- this.application = _self.explorer.app.application;
- this.explorer = _self.explorer
- }
- };
- this.explorer.app.desktop.openApplication(e, "process.ScriptDesigner", options);
- },
- _getLnkPar: function(){
- return {
- "icon": this.explorer.path+this.explorer.options.style+"/scriptIcon/lnk.png",
- "title": this.data.name,
- "par": "process.ScriptDesigner#{\"id\": \""+this.data.id+"\", \"applicationId\": \""+this.explorer.app.application.id+"\"}"
- };
- },
- _customNodes: function(){
- if (!this.data.validated){
- new Element("div", {"styles": this.explorer.css.itemErrorNode}).inject(this.node);
- this.node.setStyle("background-color", "#f9e8e8");
- }
- this.node.setStyle("cursor", "pointer");
- this.nodeColor = this.node.getStyle("background-color");
- var _self = this;
- this.node.removeEvents("mouseover");
- this.node.removeEvents("mouseout");
- this.node.addEvents({
- "mouseover": function(){this.setStyle("background-color", "#dcdcdc");},
- "mouseout": function(){this.setStyle("background-color", _self.nodeColor);},
- "click": function(){this.selected();}.bind(this)
- });
- var inforNode = new Element("div", {"styles": {
- "font-size": "14px"
- }, "text": this.explorer.app.lp.selectScript+this.data.name+" ("+this.data.alias+") "});
- new mBox.Tooltip({
- theme: 'BlackGradient',
- content: inforNode,
- offset: {x: 0, y:0},
- setStyles: {content: {padding: 10, lineHeight: 20}},
- attach: this.node,
- transition: 'flyin'
- });
- },
- selected: function(){
- this.explorer.window.selected(this);
- }
- });
|