123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236 |
- MWF.xDesktop.requireApp("process.ApplicationExplorer", "",null,false);
- MWF.xApplication.process.ProcessManager.widget = MWF.xApplication.process.ProcessManager.widget || {};
- MWF.xApplication.process.ProcessManager.widget.ApplicationSelector = new Class({
- Implements: [Options, Events],
- Extends: MWF.widget.Common,
- options: {
- "style": "default",
- "multi": true,
- "maskNode": $(document.body)
- },
- initialize: function(app, options){
- this.setOptions(options);
- //this.node = $(node);
- this.app = app;
- this.applications = [];
- this.path = "../x_component_process_ProcessManager/widget/$ApplicationSelector/";
- this.cssPath = "../x_component_process_ProcessManager/widget/$ApplicationSelector/"+this.options.style+"/css.wcss";
- this._loadCss();
- this.selectedItems = [];
- },
- load: function(callback){
- this.callback = callback || null;
- 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 Application"}).inject(this.titleNode);
- this.titleActionNode.addEvent("click", function(){
- this.close();
- }.bind(this));
- this.windowContentScrollNode = new Element("div", {"styles": this.css.windowContentScrollNode}).inject(this.windowNode);
- this.windowContentNode = new Element("div", {"styles": this.css.windowContentNode}).inject(this.windowContentScrollNode);
- MWF.require("MWF.widget.DragScroll", function(){
- new MWF.widget.DragScroll(this.windowContentScrollNode);
- }.bind(this));
- MWF.require("MWF.widget.ScrollBar", function(){
- new MWF.widget.ScrollBar(this.windowContentScrollNode);
- }.bind(this));
- 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.cancelActionNode = new Element("button", {
- "styles": this.css.cancelActionNode,
- "text": this.app.lp.selectorButton.cancel
- }).inject(this.actionNode);
- this.okActionNode = new Element("button", {
- "styles": this.css.okActionNode,
- "text": this.app.lp.selectorButton.ok
- }).inject(this.actionNode);
- this.okActionNode.addEvent("click", function(){
- if (this.callback) this.callback(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_processplatform_assemble_designer");
- this.restActions.listApplication("", function(json){
- json.data.each(function(app){
- var application = new MWF.xApplication.process.ProcessManager.widget.ApplicationSelector.Application(this.app, this, app);
- application.load();
- this.applications.push(application);
- //this.windowContentNode
- //var check = new Element("input", {"type": "checkbox", "value": app.id}).inject(content);
- //var span = new Element("span", {"text": app.name}).inject(content);
- }.bind(this));
- }.bind(this));
- //}.bind(this));
- },
- //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);
- //},
- clearSelected: function(){
- this.applications.each(function(app){
- if (app.selected) app.unSelectedItem();
- }.bind(this));
- },
- close: function(){
- //if (this.callback) this.callback();
- this.selectedItems = [];
- this.windowNode.destroy();
- this.options.maskNode.unmask();
- }
- });
- MWF.xApplication.process.ProcessManager.widget.ApplicationSelector.Application = new Class({
- Extends: MWF.xApplication.process.ApplicationExplorer.Application,
- Implements: [Options, Events],
- initialize: function(app, selector, data, options){
- this.setOptions(options);
- this.app = app;
- this.selector = selector;
- this.container = selector.windowContentNode;
- this.css = selector.css;
- this.data = data;
- },
- load: function(){
- this.node = new Element("div", {
- "styles": this.css.applicationItemNode
- });
- this.loadTopNode();
- this.loadIconNode();
- this.loadSelectIcon();
- //this.loadExportAction();
- this.loadTitleNode();
- this.loadNewNode();
- //this.loadInforNode();
- //this.loadProcessNode();
- //this.loadFormNode();
- // this.loadDateNode();
- this.node.inject(this.container, this.options.where);
- },
- openApplication: function(){
- if (!this.selected){
- if (!this.selector.options.multi) this.selector.clearSelected();
- this.selectedItem();
- }else{
- //var bgcolor = this.topNode.retrieve("bgcolor");
- //this.topNode.setStyle("background-color", bgcolor);
- //this.selectIconNode.setStyles(this.css.applicationItemSelectIcon);
- //this.node.setStyles(this.css.applicationItemNode);
- //this.topNode.setStyles(this.css.applicationItemTopNode);
- //this.selector.selectedItems.erase(this.data);
- //this.selected = false;
- this.unSelectedItem();
- }
- },
- selectedItem: function(){
- this.selectIconNode.setStyles(this.css.applicationItemSelectIcon_selected);
- this.topNode.store("bgcolor", this.topNode.getStyle("background-color"));
- this.node.setStyles(this.css.applicationItemNode_select);
- this.topNode.setStyles(this.css.applicationItemTopNode_select);
- this.selector.selectedItems.push(this.data);
- this.selected = true;
- },
- unSelectedItem: function(){
- var bgcolor = this.topNode.retrieve("bgcolor");
- this.topNode.setStyle("background-color", bgcolor);
- this.selectIconNode.setStyles(this.css.applicationItemSelectIcon);
- this.node.setStyles(this.css.applicationItemNode);
- this.topNode.setStyles(this.css.applicationItemTopNode);
- this.selector.selectedItems.erase(this.data);
- this.selected = false;
- },
- loadSelectIcon: function(){
- //this.topNode.setStyle("background-color", "#666");
- this.selectIconNode = new Element("div", {
- "styles": this.css.applicationItemSelectIcon
- }).inject(this.topNode);
- //this.topNode.addEvents({
- // "mouseover": function(){if (!this.readyDelete) this.delAdctionNode.fade("in"); }.bind(this),
- // "mouseout": function(){if (!this.readyDelete) this.delAdctionNode.fade("out"); }.bind(this)
- //});
- this.selectIconNode.addEvent("click", function(e){
- this.checkDeleteApplication(e);
- e.stopPropagation();
- }.bind(this));
- },
- });
|