From 51d1c842e4e92cc65708b8bb88152d7344d43d04 Mon Sep 17 00:00:00 2001 From: Charles du Jeu Date: Fri, 27 Feb 2009 15:21:36 +0000 Subject: [PATCH] Data model for batch entry, spec editor basis. git-svn-id: https://svn.argeo.org/slc/trunk@2199 4cfe0d0a-d680-48aa-b62c-e0a02a3f76cc --- .../org/argeo/slc/ria/NewLauncherApplet.js | 71 +++++++++++---- .../argeo/slc/ria/execution/BatchEntrySpec.js | 19 ++++ .../class/org/argeo/slc/ria/execution/Flow.js | 4 +- .../org/argeo/slc/ria/execution/Module.js | 4 +- .../class/org/argeo/slc/ria/execution/Spec.js | 4 +- .../org/argeo/slc/ria/execution/SpecEditor.js | 90 +++++++++++++++++++ 6 files changed, 174 insertions(+), 18 deletions(-) create mode 100644 org.argeo.slc.webapp/src/main/webapp/argeo-ria-lib/slc/class/org/argeo/slc/ria/execution/BatchEntrySpec.js create mode 100644 org.argeo.slc.webapp/src/main/webapp/argeo-ria-lib/slc/class/org/argeo/slc/ria/execution/SpecEditor.js diff --git a/org.argeo.slc.webapp/src/main/webapp/argeo-ria-lib/slc/class/org/argeo/slc/ria/NewLauncherApplet.js b/org.argeo.slc.webapp/src/main/webapp/argeo-ria-lib/slc/class/org/argeo/slc/ria/NewLauncherApplet.js index 929c2664d..600429197 100644 --- a/org.argeo.slc.webapp/src/main/webapp/argeo-ria-lib/slc/class/org/argeo/slc/ria/NewLauncherApplet.js +++ b/org.argeo.slc.webapp/src/main/webapp/argeo-ria-lib/slc/class/org/argeo/slc/ria/NewLauncherApplet.js @@ -59,10 +59,12 @@ qx.Class.define("org.argeo.slc.ria.NewLauncherApplet", callback : function(e){ var sel = this.list.getSortedSelection(); var item = sel[0]; - alert('Edit Specs for : ' + item.getLabel()); + var execFlow = item.getUserData("batchEntrySpec").getFlow(); + var specEditor = new org.argeo.slc.ria.execution.SpecEditor(execFlow); + specEditor.attachAndShow(); }, selectionChange : function(viewId, selection){ - if(viewId != "form") return; + if(viewId != "form:list") return; this.setEnabled(false); if((selection && selection.length == 1)) this.setEnabled(true); }, @@ -77,10 +79,17 @@ qx.Class.define("org.argeo.slc.ria.NewLauncherApplet", toolbar : null, callback : function(e){ var sel = this.list.getSortedSelection(); - alert('Remove '+ sel.length+ ' elements from batch'); + var modal = new org.argeo.ria.components.Modal("Confirm", null); + modal.addConfirm("Are you sure you want to remove
the selected test" + (sel.length>1?"s":"") + " from the Batch?"); + modal.addListener("ok", function(){ + for(var i=0;i 0)) this.setEnabled(true); }, @@ -100,10 +109,10 @@ qx.Class.define("org.argeo.slc.ria.NewLauncherApplet", command : null }, "reloadtree" : { - label : "Reload Node", + label : "Reload", icon : "resource/slc/view-refresh.png", shortcut : "Control+m", - enabled : true, + enabled : false, menu : "Launcher", toolbar : "launcher", callback : function(e){ @@ -111,7 +120,17 @@ qx.Class.define("org.argeo.slc.ria.NewLauncherApplet", if(selected.classname == "org.argeo.ria.components.DynamicTreeFolder"){ selected.reload(); } - }, + }, + selectionChange : function(viewId, selection){ + if(viewId != "form:tree") return; + if(!selection || selection.length != 1) return; + var item = selection[0]; + if(!qx.Class.isSubClassOf(qx.Class.getByName(item.classname), qx.ui.tree.AbstractTreeItem)) return; + this.setEnabled(false); + if(qx.Class.isSubClassOf(qx.Class.getByName(item.classname), org.argeo.ria.components.DynamicTreeFolder)){ + this.setEnabled(true); + } + }, command : null } } @@ -128,15 +147,22 @@ qx.Class.define("org.argeo.slc.ria.NewLauncherApplet", statics : { flowLoader : function(folder){ - var moduleData = folder.getUserData("executionModule"); - var req = org.argeo.ria.remote.RequestManager.getInstance().getRequest("stub.xml", "GET", "application/xml"); + var moduleData = folder.getUserData("moduleData"); + var req = org.argeo.ria.remote.RequestManager.getInstance().getRequest("../argeo-ria-src/stub.xml", "GET", "application/xml"); req.addListener("completed", function(response){ var executionModule = new org.argeo.slc.ria.execution.Module(); executionModule.setXmlNode(response.getContent()); + // + // ARTIFIALLY REPLACE MODULE NAME / VERSION, FOR TESTS PURPOSES + // + executionModule.setName(moduleData.name); + executionModule.setVersion(moduleData.version); + // END var execFlows = executionModule.getExecutionFlows(); for(var key in execFlows){ var file = new qx.ui.tree.TreeFile(key); - file.setUserData("executionFlow", execFlows); + file.setUserData("executionModule", executionModule); + file.setUserData("executionFlow", execFlows[key]); folder.add(file); } folder.setLoaded(true); @@ -163,7 +189,7 @@ qx.Class.define("org.argeo.slc.ria.NewLauncherApplet", folder.getDragData() ); moduleFolder.add(versionFolder); - //versionFolder.setUserData("executionModule", "object"); + versionFolder.setUserData("moduleData", {name:key, version:mods[key][i]}); } folder.setLoaded(true); } @@ -264,6 +290,16 @@ qx.Class.define("org.argeo.slc.ria.NewLauncherApplet", this.tree.setRoot(root); root.setOpen(true); + this.tree.addListener("changeSelection", function(e){ + var viewSelection = this.getViewSelection(); + viewSelection.setViewId("form:tree"); + viewSelection.clear(); + var sel = this.tree.getSortedSelection(); + for(var i=0;i