Author: mes
Date: 2012-03-13 17:25:21 -0700 (Tue, 13 Mar 2012)
New Revision: 28528

Added:
   
core3/impl/trunk/command-executor-impl/src/main/java/org/cytoscape/command/internal/tunables/BooleanTunableHandler.java
   
core3/impl/trunk/command-executor-impl/src/main/java/org/cytoscape/command/internal/tunables/BoundedDoubleTunableHandler.java
   
core3/impl/trunk/command-executor-impl/src/main/java/org/cytoscape/command/internal/tunables/BoundedFloatTunableHandler.java
   
core3/impl/trunk/command-executor-impl/src/main/java/org/cytoscape/command/internal/tunables/BoundedIntTunableHandler.java
   
core3/impl/trunk/command-executor-impl/src/main/java/org/cytoscape/command/internal/tunables/BoundedLongTunableHandler.java
   
core3/impl/trunk/command-executor-impl/src/main/java/org/cytoscape/command/internal/tunables/DoubleTunableHandler.java
   
core3/impl/trunk/command-executor-impl/src/main/java/org/cytoscape/command/internal/tunables/FloatTunableHandler.java
   
core3/impl/trunk/command-executor-impl/src/main/java/org/cytoscape/command/internal/tunables/ListMultipleTunableHandler.java
   
core3/impl/trunk/command-executor-impl/src/main/java/org/cytoscape/command/internal/tunables/ListSingleTunableHandler.java
   
core3/impl/trunk/command-executor-impl/src/main/java/org/cytoscape/command/internal/tunables/LongTunableHandler.java
   
core3/impl/trunk/command-executor-impl/src/main/java/org/cytoscape/command/internal/tunables/SimpleStringTunableHandlerFactory.java
   
core3/impl/trunk/command-executor-impl/src/main/java/org/cytoscape/command/internal/tunables/StringTunableHandlerFactory.java
   
core3/impl/trunk/command-executor-impl/src/main/java/org/cytoscape/command/internal/tunables/URLTunableHandler.java
Removed:
   
core3/impl/trunk/command-executor-impl/src/main/java/org/cytoscape/command/internal/tunables/CommandTunableHandlerFactory.java
   
core3/impl/trunk/command-executor-impl/src/main/java/org/cytoscape/command/internal/tunables/DummyTunableHandler.java
Modified:
   core3/gui-distribution/trunk/features/src/main/resources/features.xml
   core3/impl/trunk/command-executor-impl/pom.xml
   
core3/impl/trunk/command-executor-impl/src/main/java/org/cytoscape/command/internal/CommandExecutorImpl.java
   
core3/impl/trunk/command-executor-impl/src/main/java/org/cytoscape/command/internal/CyActivator.java
   
core3/impl/trunk/command-executor-impl/src/main/java/org/cytoscape/command/internal/TFExecutor.java
   
core3/impl/trunk/command-executor-impl/src/main/java/org/cytoscape/command/internal/tunables/CommandTunableInterceptorImpl.java
Log:
Updated command executor and added to the distribution

Modified: core3/gui-distribution/trunk/features/src/main/resources/features.xml
===================================================================
--- core3/gui-distribution/trunk/features/src/main/resources/features.xml       
2012-03-14 00:12:58 UTC (rev 28527)
+++ core3/gui-distribution/trunk/features/src/main/resources/features.xml       
2012-03-14 00:25:21 UTC (rev 28528)
@@ -107,6 +107,7 @@
     <bundle 
start-level="135">mvn:org.cytoscape/application-impl/${cytoscape.impl.version}</bundle>
     
     <bundle 
start-level="140">mvn:org.cytoscape/datasource-biogrid-impl/${cytoscape.impl.version}</bundle>
+    <bundle 
start-level="140">mvn:org.cytoscape/command-executor-impl/${cytoscape.impl.version}</bundle>
     <bundle 
start-level="140">mvn:org.cytoscape/session-impl/${cytoscape.impl.version}</bundle>
     <bundle 
start-level="140">mvn:org.cytoscape/ding-customgraphics-manager-impl/${cytoscape.impl.version}</bundle>
     

Modified: core3/impl/trunk/command-executor-impl/pom.xml
===================================================================
--- core3/impl/trunk/command-executor-impl/pom.xml      2012-03-14 00:12:58 UTC 
(rev 28527)
+++ core3/impl/trunk/command-executor-impl/pom.xml      2012-03-14 00:25:21 UTC 
(rev 28528)
@@ -69,12 +69,6 @@
 
        <dependencies>
                <dependency>
-                       <groupId>org.springframework</groupId>
-                       <artifactId>spring-core</artifactId>
-                       <version>${spring.version}</version>
-                       <scope>provided</scope>
-               </dependency>
-               <dependency>
                        <groupId>org.cytoscape</groupId>
                        <artifactId>core-task-api</artifactId>
                </dependency>

Modified: 
core3/impl/trunk/command-executor-impl/src/main/java/org/cytoscape/command/internal/CommandExecutorImpl.java
===================================================================
--- 
core3/impl/trunk/command-executor-impl/src/main/java/org/cytoscape/command/internal/CommandExecutorImpl.java
        2012-03-14 00:12:58 UTC (rev 28527)
+++ 
core3/impl/trunk/command-executor-impl/src/main/java/org/cytoscape/command/internal/CommandExecutorImpl.java
        2012-03-14 00:25:21 UTC (rev 28528)
@@ -21,11 +21,12 @@
        private final Map<String, Map<String,Executor>> commandExecutorMap = 
                                                     new 
HashMap<String,Map<String,Executor>>();
 
-       private final CommandTunableInterceptorImpl interceptor = new 
CommandTunableInterceptorImpl(); 
+       private final CommandTunableInterceptorImpl interceptor; 
        private final CyApplicationManager appMgr;
 
-       public CommandExecutorImpl(CyApplicationManager appMgr) {
+       public CommandExecutorImpl(CyApplicationManager appMgr, 
CommandTunableInterceptorImpl interceptor) {
                this.appMgr = appMgr;
+               this.interceptor = interceptor;
        }
 
        public void addTaskFactory(TaskFactory tf, Map props) {

Modified: 
core3/impl/trunk/command-executor-impl/src/main/java/org/cytoscape/command/internal/CyActivator.java
===================================================================
--- 
core3/impl/trunk/command-executor-impl/src/main/java/org/cytoscape/command/internal/CyActivator.java
        2012-03-14 00:12:58 UTC (rev 28527)
+++ 
core3/impl/trunk/command-executor-impl/src/main/java/org/cytoscape/command/internal/CyActivator.java
        2012-03-14 00:25:21 UTC (rev 28528)
@@ -1,18 +1,16 @@
-
-
-
-
 package org.cytoscape.command.internal;
 
 import org.cytoscape.application.CyApplicationManager;
 
 import org.cytoscape.command.internal.CommandExecutorImpl;
 import org.cytoscape.command.internal.CommandExecutorTaskFactory;
+import org.cytoscape.command.internal.tunables.*;
 
 import org.cytoscape.work.TaskFactory;
 
 import org.cytoscape.task.NetworkTaskFactory;
 import org.cytoscape.work.TaskFactory;
+import org.cytoscape.work.util.*;
 
 import org.osgi.framework.BundleContext;
 
@@ -20,6 +18,8 @@
 
 import java.util.Properties;
 
+import java.io.File;
+import java.net.URL;
 
 
 public class CyActivator extends AbstractCyActivator {
@@ -31,20 +31,49 @@
        public void start(BundleContext bc) {
 
                CyApplicationManager cyApplicationManagerServiceRef = 
getService(bc,CyApplicationManager.class);
+               CommandTunableInterceptorImpl interceptor = new 
CommandTunableInterceptorImpl();
                
-               CommandExecutorImpl commandExecutorImpl = new 
CommandExecutorImpl(cyApplicationManagerServiceRef);
+               CommandExecutorImpl commandExecutorImpl = new 
CommandExecutorImpl(cyApplicationManagerServiceRef,interceptor);
                CommandExecutorTaskFactory commandExecutorTaskFactory = new 
CommandExecutorTaskFactory(commandExecutorImpl);
                
                
                Properties commandExecutorTaskFactoryProps = new Properties();
-               
commandExecutorTaskFactoryProps.setProperty("preferredMenu","Apps");
-               commandExecutorTaskFactoryProps.setProperty("title","Load 
Command File");
+               
commandExecutorTaskFactoryProps.setProperty("preferredMenu","Tools");
+               commandExecutorTaskFactoryProps.setProperty("title","Run 
Commands...");
                
registerService(bc,commandExecutorTaskFactory,TaskFactory.class, 
commandExecutorTaskFactoryProps);
 
                
registerServiceListener(bc,commandExecutorImpl,"addTaskFactory","removeTaskFactory",TaskFactory.class);
                
registerServiceListener(bc,commandExecutorImpl,"addNetworkTaskFactory","removeNetworkTaskFactory",NetworkTaskFactory.class);
 
+               
registerServiceListener(bc,interceptor,"addTunableHandlerFactory","removeTunableHandlerFactory",StringTunableHandlerFactory.class);
 
+               StringTunableHandlerFactory<FileTunableHandler> fileTHF = new 
SimpleStringTunableHandlerFactory<FileTunableHandler>(FileTunableHandler.class, 
File.class);
+               StringTunableHandlerFactory<IntTunableHandler> intTHF = new 
SimpleStringTunableHandlerFactory<IntTunableHandler>(IntTunableHandler.class, 
Integer.class, int.class);
+               StringTunableHandlerFactory<DoubleTunableHandler> doubleTHF = 
new 
SimpleStringTunableHandlerFactory<DoubleTunableHandler>(DoubleTunableHandler.class,
 Double.class, double.class);
+               StringTunableHandlerFactory<FloatTunableHandler> floatTHF = new 
SimpleStringTunableHandlerFactory<FloatTunableHandler>(FloatTunableHandler.class,
 Float.class, float.class);
+               StringTunableHandlerFactory<LongTunableHandler> longTHF = new 
SimpleStringTunableHandlerFactory<LongTunableHandler>(LongTunableHandler.class, 
Long.class, long.class);
+               StringTunableHandlerFactory<BooleanTunableHandler> booleanTHF = 
new 
SimpleStringTunableHandlerFactory<BooleanTunableHandler>(BooleanTunableHandler.class,
 Boolean.class, boolean.class);
+               StringTunableHandlerFactory<BoundedIntTunableHandler> 
boundedIntTHF = new 
SimpleStringTunableHandlerFactory<BoundedIntTunableHandler>(BoundedIntTunableHandler.class,
 BoundedInteger.class);
+               StringTunableHandlerFactory<BoundedDoubleTunableHandler> 
boundedDoubleTHF = new 
SimpleStringTunableHandlerFactory<BoundedDoubleTunableHandler>(BoundedDoubleTunableHandler.class,
 BoundedDouble.class);
+               StringTunableHandlerFactory<BoundedFloatTunableHandler> 
boundedFloatTHF = new 
SimpleStringTunableHandlerFactory<BoundedFloatTunableHandler>(BoundedFloatTunableHandler.class,
 BoundedFloat.class);
+               StringTunableHandlerFactory<BoundedLongTunableHandler> 
boundedLongTHF = new 
SimpleStringTunableHandlerFactory<BoundedLongTunableHandler>(BoundedLongTunableHandler.class,
 BoundedLong.class);
+               StringTunableHandlerFactory<URLTunableHandler> urlTHF = new 
SimpleStringTunableHandlerFactory<URLTunableHandler>(URLTunableHandler.class, 
URL.class);
+               StringTunableHandlerFactory<ListSingleTunableHandler> 
listSingleTHF = new 
SimpleStringTunableHandlerFactory<ListSingleTunableHandler>(ListSingleTunableHandler.class,
 ListSingleSelection.class);
+               StringTunableHandlerFactory<ListMultipleTunableHandler> 
listMultipleTHF = new 
SimpleStringTunableHandlerFactory<ListMultipleTunableHandler>(ListMultipleTunableHandler.class,
 ListMultipleSelection.class);
+
+               
registerService(bc,fileTHF,StringTunableHandlerFactory.class,new Properties());
+               registerService(bc,intTHF,StringTunableHandlerFactory.class,new 
Properties());
+               
registerService(bc,doubleTHF,StringTunableHandlerFactory.class,new 
Properties());
+               
registerService(bc,floatTHF,StringTunableHandlerFactory.class,new Properties());
+               
registerService(bc,longTHF,StringTunableHandlerFactory.class,new Properties());
+               
registerService(bc,booleanTHF,StringTunableHandlerFactory.class,new 
Properties());
+               
registerService(bc,boundedIntTHF,StringTunableHandlerFactory.class,new 
Properties());
+               
registerService(bc,boundedDoubleTHF,StringTunableHandlerFactory.class,new 
Properties());
+               
registerService(bc,boundedFloatTHF,StringTunableHandlerFactory.class,new 
Properties());
+               
registerService(bc,boundedLongTHF,StringTunableHandlerFactory.class,new 
Properties());
+               registerService(bc,urlTHF,StringTunableHandlerFactory.class,new 
Properties());
+               
registerService(bc,listSingleTHF,StringTunableHandlerFactory.class,new 
Properties());
+               
registerService(bc,listMultipleTHF,StringTunableHandlerFactory.class,new 
Properties());
        }
 }
 

Modified: 
core3/impl/trunk/command-executor-impl/src/main/java/org/cytoscape/command/internal/TFExecutor.java
===================================================================
--- 
core3/impl/trunk/command-executor-impl/src/main/java/org/cytoscape/command/internal/TFExecutor.java
 2012-03-14 00:12:58 UTC (rev 28527)
+++ 
core3/impl/trunk/command-executor-impl/src/main/java/org/cytoscape/command/internal/TFExecutor.java
 2012-03-14 00:25:21 UTC (rev 28528)
@@ -29,9 +29,8 @@
                        TaskIterator ti = tf.createTaskIterator();
                        while (ti.hasNext()) {
                                Task t = ti.next();
-                               interceptor.setArgString(args);
-                               //interceptor.loadTunables(t);
-                               interceptor.execUI(t);
+                               interceptor.setConfigurationContext(args);
+                               interceptor.validateAndWriteBackTunables(t);
                                t.run(tm);
                        }
                } catch (Exception e) {

Added: 
core3/impl/trunk/command-executor-impl/src/main/java/org/cytoscape/command/internal/tunables/BooleanTunableHandler.java
===================================================================
--- 
core3/impl/trunk/command-executor-impl/src/main/java/org/cytoscape/command/internal/tunables/BooleanTunableHandler.java
                             (rev 0)
+++ 
core3/impl/trunk/command-executor-impl/src/main/java/org/cytoscape/command/internal/tunables/BooleanTunableHandler.java
     2012-03-14 00:25:21 UTC (rev 28528)
@@ -0,0 +1,14 @@
+
+package org.cytoscape.command.internal.tunables;
+
+import org.cytoscape.work.Tunable;
+import java.lang.reflect.Field;
+import java.lang.reflect.Method;
+
+public class BooleanTunableHandler extends AbstractStringTunableHandler {
+    public BooleanTunableHandler(Field f, Object o, Tunable t) { super(f,o,t); 
}
+    public BooleanTunableHandler(Method get, Method set, Object o, Tunable t) 
{ super(get,set,o,t); }
+       public Object processArg(String arg) throws Exception {
+               return Boolean.parseBoolean(arg);
+       }
+}

Added: 
core3/impl/trunk/command-executor-impl/src/main/java/org/cytoscape/command/internal/tunables/BoundedDoubleTunableHandler.java
===================================================================
--- 
core3/impl/trunk/command-executor-impl/src/main/java/org/cytoscape/command/internal/tunables/BoundedDoubleTunableHandler.java
                               (rev 0)
+++ 
core3/impl/trunk/command-executor-impl/src/main/java/org/cytoscape/command/internal/tunables/BoundedDoubleTunableHandler.java
       2012-03-14 00:25:21 UTC (rev 28528)
@@ -0,0 +1,18 @@
+
+package org.cytoscape.command.internal.tunables;
+
+import org.cytoscape.work.Tunable;
+import org.cytoscape.work.util.BoundedDouble;
+import java.lang.reflect.Field;
+import java.lang.reflect.Method;
+
+public class BoundedDoubleTunableHandler extends AbstractStringTunableHandler {
+    public BoundedDoubleTunableHandler(Field f, Object o, Tunable t) { 
super(f,o,t); }
+    public BoundedDoubleTunableHandler(Method get, Method set, Object o, 
Tunable t) { super(get,set,o,t); }
+       public Object processArg(String arg) throws Exception {
+               double value = Double.parseDouble(arg);
+               BoundedDouble bi = (BoundedDouble)getValue();
+               bi.setValue(value);
+               return bi;
+       }
+}

Added: 
core3/impl/trunk/command-executor-impl/src/main/java/org/cytoscape/command/internal/tunables/BoundedFloatTunableHandler.java
===================================================================
--- 
core3/impl/trunk/command-executor-impl/src/main/java/org/cytoscape/command/internal/tunables/BoundedFloatTunableHandler.java
                                (rev 0)
+++ 
core3/impl/trunk/command-executor-impl/src/main/java/org/cytoscape/command/internal/tunables/BoundedFloatTunableHandler.java
        2012-03-14 00:25:21 UTC (rev 28528)
@@ -0,0 +1,18 @@
+
+package org.cytoscape.command.internal.tunables;
+
+import org.cytoscape.work.Tunable;
+import org.cytoscape.work.util.BoundedFloat;
+import java.lang.reflect.Field;
+import java.lang.reflect.Method;
+
+public class BoundedFloatTunableHandler extends AbstractStringTunableHandler {
+    public BoundedFloatTunableHandler(Field f, Object o, Tunable t) { 
super(f,o,t); }
+    public BoundedFloatTunableHandler(Method get, Method set, Object o, 
Tunable t) { super(get,set,o,t); }
+       public Object processArg(String arg) throws Exception {
+               float value = Float.parseFloat(arg);
+               BoundedFloat bi = (BoundedFloat)getValue();
+               bi.setValue(value);
+               return bi;
+       }
+}

Added: 
core3/impl/trunk/command-executor-impl/src/main/java/org/cytoscape/command/internal/tunables/BoundedIntTunableHandler.java
===================================================================
--- 
core3/impl/trunk/command-executor-impl/src/main/java/org/cytoscape/command/internal/tunables/BoundedIntTunableHandler.java
                          (rev 0)
+++ 
core3/impl/trunk/command-executor-impl/src/main/java/org/cytoscape/command/internal/tunables/BoundedIntTunableHandler.java
  2012-03-14 00:25:21 UTC (rev 28528)
@@ -0,0 +1,18 @@
+
+package org.cytoscape.command.internal.tunables;
+
+import org.cytoscape.work.Tunable;
+import org.cytoscape.work.util.BoundedInteger;
+import java.lang.reflect.Field;
+import java.lang.reflect.Method;
+
+public class BoundedIntTunableHandler extends AbstractStringTunableHandler {
+    public BoundedIntTunableHandler(Field f, Object o, Tunable t) { 
super(f,o,t); }
+    public BoundedIntTunableHandler(Method get, Method set, Object o, Tunable 
t) { super(get,set,o,t); }
+       public Object processArg(String arg) throws Exception {
+               int value = Integer.parseInt(arg);
+               BoundedInteger bi = (BoundedInteger)getValue();
+               bi.setValue(value);
+               return bi;
+       }
+}

Added: 
core3/impl/trunk/command-executor-impl/src/main/java/org/cytoscape/command/internal/tunables/BoundedLongTunableHandler.java
===================================================================
--- 
core3/impl/trunk/command-executor-impl/src/main/java/org/cytoscape/command/internal/tunables/BoundedLongTunableHandler.java
                         (rev 0)
+++ 
core3/impl/trunk/command-executor-impl/src/main/java/org/cytoscape/command/internal/tunables/BoundedLongTunableHandler.java
 2012-03-14 00:25:21 UTC (rev 28528)
@@ -0,0 +1,18 @@
+
+package org.cytoscape.command.internal.tunables;
+
+import org.cytoscape.work.Tunable;
+import org.cytoscape.work.util.BoundedLong;
+import java.lang.reflect.Field;
+import java.lang.reflect.Method;
+
+public class BoundedLongTunableHandler extends AbstractStringTunableHandler {
+    public BoundedLongTunableHandler(Field f, Object o, Tunable t) { 
super(f,o,t); }
+    public BoundedLongTunableHandler(Method get, Method set, Object o, Tunable 
t) { super(get,set,o,t); }
+       public Object processArg(String arg) throws Exception {
+               long value = Long.parseLong(arg);
+               BoundedLong bi = (BoundedLong)getValue();
+               bi.setValue(value);
+               return bi;
+       }
+}

Deleted: 
core3/impl/trunk/command-executor-impl/src/main/java/org/cytoscape/command/internal/tunables/CommandTunableHandlerFactory.java
===================================================================
--- 
core3/impl/trunk/command-executor-impl/src/main/java/org/cytoscape/command/internal/tunables/CommandTunableHandlerFactory.java
      2012-03-14 00:12:58 UTC (rev 28527)
+++ 
core3/impl/trunk/command-executor-impl/src/main/java/org/cytoscape/command/internal/tunables/CommandTunableHandlerFactory.java
      2012-03-14 00:25:21 UTC (rev 28528)
@@ -1,97 +0,0 @@
-package org.cytoscape.command.internal.tunables;
-
-
-import java.io.File;
-import java.io.InputStream;
-import java.lang.reflect.Field;
-import java.lang.reflect.Method;
-import java.net.URL;
-
-import org.cytoscape.work.Tunable;
-import org.cytoscape.work.TunableHandlerFactory;
-import org.cytoscape.work.TunableHandler;
-import org.cytoscape.work.util.BoundedDouble;
-import org.cytoscape.work.util.BoundedFloat;
-import org.cytoscape.work.util.BoundedInteger;
-import org.cytoscape.work.util.BoundedLong;
-import org.cytoscape.work.util.ListMultipleSelection;
-import org.cytoscape.work.util.ListSingleSelection;
-
-
-public class CommandTunableHandlerFactory implements 
TunableHandlerFactory<StringTunableHandler> {
-
-
-       public StringTunableHandler createTunableHandler(final Method getter, 
final Method setter, final Object instance, final Tunable tunable) {
-               final Class<?> type = getter.getReturnType();
-
-               if (type == Boolean.class || type == boolean.class)
-                       return new DummyTunableHandler(getter, setter, 
instance, tunable);
-               if (type == String.class)
-                       return new DummyTunableHandler(getter, setter, 
instance, tunable);
-               if (type == Integer.class || type == int.class)
-                       return new IntTunableHandler(getter, setter, instance, 
tunable);
-               if (type == Double.class || type == double.class)
-                       return new DummyTunableHandler(getter, setter, 
instance, tunable);
-               if (type == Float.class || type == float.class)
-                       return new DummyTunableHandler(getter, setter, 
instance, tunable);
-               if (type == Long.class || type == long.class)
-                       return new DummyTunableHandler(getter, setter, 
instance, tunable);
-               if (type == BoundedInteger.class)
-                       return new DummyTunableHandler(getter, setter, 
instance, tunable);
-               if (type == BoundedLong.class)
-                       return new DummyTunableHandler(getter, setter, 
instance, tunable);
-               if (type == BoundedFloat.class)
-                       return new DummyTunableHandler(getter, setter, 
instance, tunable);
-               if (type == BoundedDouble.class)
-                       return new DummyTunableHandler(getter, setter, 
instance, tunable);
-               if (type == ListSingleSelection.class)
-                       return new DummyTunableHandler(getter, setter, 
instance, tunable);
-               if (type == ListMultipleSelection.class)
-                       return new DummyTunableHandler(getter, setter, 
instance, tunable);
-               if (type == File.class)
-                       return new FileTunableHandler(getter, setter, instance, 
tunable);
-               if (type == URL.class)
-                       return new DummyTunableHandler(getter, setter, 
instance, tunable);
-               if (type == InputStream.class)
-                       return new DummyTunableHandler(getter, setter, 
instance, tunable);
-
-               return null;
-       }
-
-       public StringTunableHandler createTunableHandler(final Field field, 
final Object instance, final Tunable tunable) {
-               final Class<?> type = field.getType();
-
-               if (type == Boolean.class || type == boolean.class)
-                       return new DummyTunableHandler(field, instance, 
tunable);
-               if (type == String.class)
-                       return new DummyTunableHandler(field, instance, 
tunable);
-               if (type == Integer.class || type == int.class)
-                       return new IntTunableHandler(field, instance, tunable);
-               if (type == Double.class || type == double.class)
-                       return new DummyTunableHandler(field, instance, 
tunable);
-               if (type == Float.class || type == float.class)
-                       return new DummyTunableHandler(field, instance, 
tunable);
-               if (type == Long.class || type == long.class)
-                       return new DummyTunableHandler(field, instance, 
tunable);
-               if (type == BoundedInteger.class)
-                       return new DummyTunableHandler(field, instance, 
tunable);
-               if (type == BoundedLong.class)
-                       return new DummyTunableHandler(field, instance, 
tunable);
-               if (type == BoundedFloat.class)
-                       return new DummyTunableHandler(field, instance, 
tunable);
-               if (type == BoundedDouble.class)
-                       return new DummyTunableHandler(field, instance, 
tunable);
-               if (type == ListSingleSelection.class)
-                       return new DummyTunableHandler(field, instance, 
tunable);
-               if (type == ListMultipleSelection.class)
-                       return new DummyTunableHandler(field, instance, 
tunable);
-               if (type == File.class)
-                       return new FileTunableHandler(field, instance, tunable);
-               if (type == URL.class)
-                       return new DummyTunableHandler(field, instance, 
tunable);
-               if (type == InputStream.class)
-                       return new DummyTunableHandler(field, instance, 
tunable);
-
-               return null;
-       }
-}

Modified: 
core3/impl/trunk/command-executor-impl/src/main/java/org/cytoscape/command/internal/tunables/CommandTunableInterceptorImpl.java
===================================================================
--- 
core3/impl/trunk/command-executor-impl/src/main/java/org/cytoscape/command/internal/tunables/CommandTunableInterceptorImpl.java
     2012-03-14 00:12:58 UTC (rev 28527)
+++ 
core3/impl/trunk/command-executor-impl/src/main/java/org/cytoscape/command/internal/tunables/CommandTunableInterceptorImpl.java
     2012-03-14 00:25:21 UTC (rev 28528)
@@ -10,48 +10,37 @@
 
 
 public class CommandTunableInterceptorImpl extends 
AbstractTunableInterceptor<StringTunableHandler> {
+
        private static final Logger logger = 
LoggerFactory.getLogger(CommandTunableInterceptorImpl.class);
        private String args;
 
-       public boolean execUI(Object... objs) {
-               return validateAndWriteBackTunables(objs);
+       public void setConfigurationContext(Object args) {
+               this.args = (String)args;
        }
 
-       public void setArgString(String args) {
-               this.args = args;
-       }
-
-        /**
-         * This method calls {@link AbstractTunableInterceptor.loadTunables} 
with the
-         * unwrapped object instead of the Spring proxy object, which is 
provided as
-         * an argument.
-         * @param obj The Spring proxy object from which we'd like the raw 
object.
-         */
-        public void loadTunables(final Object obj) {
-               super.loadTunables(obj);
-        }
-
-       public boolean validateAndWriteBackTunables(Object... objs) {
+       public boolean validateAndWriteBackTunables(Object o) {
                try {
-                       // The objects here are task objects.  Generally there 
is only one.
-                       for ( Object o : objs ) {
+                       // Get the handlers for the tunables in the Task.  The
+                       // key is the name of the tunable and the value is the 
handler
+                       // for that tunable.
+                       Map<String,StringTunableHandler> handlers = 
getHandlers(o);
+                       for ( StringTunableHandler h : handlers.values() ) {
 
-                               // Get the handlers for the tunables in the 
Task.  The
-                               // key is the name of the tunable and the value 
is the handler
-                               // for that tunable.
-                               Map<String,StringTunableHandler> handlers = 
getHandlers(o);
-                               for ( StringTunableHandler h : 
handlers.values() ) {
-
-                                       // Give the handler the arg string and 
let it do its thing,
-                                       // which will hopefully be: set the 
tunable value based on
-                                       // information parsed from the arg 
string.
-                                       h.processArgString(args);
-                               }
+                               // Give the handler the arg string and let it 
do its thing,
+                               // which will hopefully be: set the tunable 
value based on
+                               // information parsed from the arg string.
+                               h.processArgString(args);
                        }
-
                } catch (Exception e) {
                        logger.warn("Exception processing tunables", e);
                }
                return true;
        }
+
+       public void addTunableHandlerFactory(StringTunableHandlerFactory f, Map 
p) {
+               super.addTunableHandlerFactory(f,p);
+       }
+       public void removeTunableHandlerFactory(StringTunableHandlerFactory f, 
Map p) {
+               super.removeTunableHandlerFactory(f,p);
+       }
 }

Added: 
core3/impl/trunk/command-executor-impl/src/main/java/org/cytoscape/command/internal/tunables/DoubleTunableHandler.java
===================================================================
--- 
core3/impl/trunk/command-executor-impl/src/main/java/org/cytoscape/command/internal/tunables/DoubleTunableHandler.java
                              (rev 0)
+++ 
core3/impl/trunk/command-executor-impl/src/main/java/org/cytoscape/command/internal/tunables/DoubleTunableHandler.java
      2012-03-14 00:25:21 UTC (rev 28528)
@@ -0,0 +1,14 @@
+
+package org.cytoscape.command.internal.tunables;
+
+import org.cytoscape.work.Tunable;
+import java.lang.reflect.Field;
+import java.lang.reflect.Method;
+
+public class DoubleTunableHandler extends AbstractStringTunableHandler {
+    public DoubleTunableHandler(Field f, Object o, Tunable t) { super(f,o,t); }
+    public DoubleTunableHandler(Method get, Method set, Object o, Tunable t) { 
super(get,set,o,t); }
+       public Object processArg(String arg) throws Exception {
+               return Double.parseDouble(arg);
+       }
+}

Deleted: 
core3/impl/trunk/command-executor-impl/src/main/java/org/cytoscape/command/internal/tunables/DummyTunableHandler.java
===================================================================
--- 
core3/impl/trunk/command-executor-impl/src/main/java/org/cytoscape/command/internal/tunables/DummyTunableHandler.java
       2012-03-14 00:12:58 UTC (rev 28527)
+++ 
core3/impl/trunk/command-executor-impl/src/main/java/org/cytoscape/command/internal/tunables/DummyTunableHandler.java
       2012-03-14 00:25:21 UTC (rev 28528)
@@ -1,22 +0,0 @@
-
-package org.cytoscape.command.internal.tunables;
-
-
-
-import org.cytoscape.work.TunableHandler;
-import org.cytoscape.work.Tunable;
-import org.cytoscape.work.AbstractTunableHandler;
-
-import java.lang.reflect.Field;
-import java.lang.reflect.Method;
-
-
-public class DummyTunableHandler extends AbstractTunableHandler implements 
StringTunableHandler {
-
-       public DummyTunableHandler(Field f, Object o, Tunable t) { 
super(f,o,t); }
-       public DummyTunableHandler(Method get, Method set, Object o, Tunable t) 
{ super(get,set,o,t); }
-       public void processArgString(String s) {
-               System.out.println("Dummy process! " + getName());
-       }
-       public void handle() {}
-}

Added: 
core3/impl/trunk/command-executor-impl/src/main/java/org/cytoscape/command/internal/tunables/FloatTunableHandler.java
===================================================================
--- 
core3/impl/trunk/command-executor-impl/src/main/java/org/cytoscape/command/internal/tunables/FloatTunableHandler.java
                               (rev 0)
+++ 
core3/impl/trunk/command-executor-impl/src/main/java/org/cytoscape/command/internal/tunables/FloatTunableHandler.java
       2012-03-14 00:25:21 UTC (rev 28528)
@@ -0,0 +1,14 @@
+
+package org.cytoscape.command.internal.tunables;
+
+import org.cytoscape.work.Tunable;
+import java.lang.reflect.Field;
+import java.lang.reflect.Method;
+
+public class FloatTunableHandler extends AbstractStringTunableHandler {
+    public FloatTunableHandler(Field f, Object o, Tunable t) { super(f,o,t); }
+    public FloatTunableHandler(Method get, Method set, Object o, Tunable t) { 
super(get,set,o,t); }
+       public Object processArg(String arg) throws Exception {
+               return Float.parseFloat(arg);
+       }
+}

Added: 
core3/impl/trunk/command-executor-impl/src/main/java/org/cytoscape/command/internal/tunables/ListMultipleTunableHandler.java
===================================================================
--- 
core3/impl/trunk/command-executor-impl/src/main/java/org/cytoscape/command/internal/tunables/ListMultipleTunableHandler.java
                                (rev 0)
+++ 
core3/impl/trunk/command-executor-impl/src/main/java/org/cytoscape/command/internal/tunables/ListMultipleTunableHandler.java
        2012-03-14 00:25:21 UTC (rev 28528)
@@ -0,0 +1,18 @@
+
+package org.cytoscape.command.internal.tunables;
+
+import org.cytoscape.work.Tunable;
+import org.cytoscape.work.util.ListMultipleSelection;
+import java.lang.reflect.Field;
+import java.lang.reflect.Method;
+import java.util.Collections;
+
+public class ListMultipleTunableHandler extends AbstractStringTunableHandler {
+    public ListMultipleTunableHandler(Field f, Object o, Tunable t) { 
super(f,o,t); }
+    public ListMultipleTunableHandler(Method get, Method set, Object o, 
Tunable t) { super(get,set,o,t); }
+       public Object processArg(String arg) throws Exception {
+               ListMultipleSelection lss = (ListMultipleSelection)getValue();
+               lss.setSelectedValues(Collections.singletonList((Object)arg));
+               return lss;
+       }
+}

Added: 
core3/impl/trunk/command-executor-impl/src/main/java/org/cytoscape/command/internal/tunables/ListSingleTunableHandler.java
===================================================================
--- 
core3/impl/trunk/command-executor-impl/src/main/java/org/cytoscape/command/internal/tunables/ListSingleTunableHandler.java
                          (rev 0)
+++ 
core3/impl/trunk/command-executor-impl/src/main/java/org/cytoscape/command/internal/tunables/ListSingleTunableHandler.java
  2012-03-14 00:25:21 UTC (rev 28528)
@@ -0,0 +1,17 @@
+
+package org.cytoscape.command.internal.tunables;
+
+import org.cytoscape.work.Tunable;
+import org.cytoscape.work.util.ListSingleSelection;
+import java.lang.reflect.Field;
+import java.lang.reflect.Method;
+
+public class ListSingleTunableHandler extends AbstractStringTunableHandler {
+    public ListSingleTunableHandler(Field f, Object o, Tunable t) { 
super(f,o,t); }
+    public ListSingleTunableHandler(Method get, Method set, Object o, Tunable 
t) { super(get,set,o,t); }
+       public Object processArg(String arg) throws Exception {
+               ListSingleSelection lss = (ListSingleSelection)getValue();
+               lss.setSelectedValue((Object)arg);
+               return lss;
+       }
+}

Added: 
core3/impl/trunk/command-executor-impl/src/main/java/org/cytoscape/command/internal/tunables/LongTunableHandler.java
===================================================================
--- 
core3/impl/trunk/command-executor-impl/src/main/java/org/cytoscape/command/internal/tunables/LongTunableHandler.java
                                (rev 0)
+++ 
core3/impl/trunk/command-executor-impl/src/main/java/org/cytoscape/command/internal/tunables/LongTunableHandler.java
        2012-03-14 00:25:21 UTC (rev 28528)
@@ -0,0 +1,14 @@
+
+package org.cytoscape.command.internal.tunables;
+
+import org.cytoscape.work.Tunable;
+import java.lang.reflect.Field;
+import java.lang.reflect.Method;
+
+public class LongTunableHandler extends AbstractStringTunableHandler {
+    public LongTunableHandler(Field f, Object o, Tunable t) { super(f,o,t); }
+    public LongTunableHandler(Method get, Method set, Object o, Tunable t) { 
super(get,set,o,t); }
+       public Object processArg(String arg) throws Exception {
+               return Long.parseLong(arg);
+       }
+}

Added: 
core3/impl/trunk/command-executor-impl/src/main/java/org/cytoscape/command/internal/tunables/SimpleStringTunableHandlerFactory.java
===================================================================
--- 
core3/impl/trunk/command-executor-impl/src/main/java/org/cytoscape/command/internal/tunables/SimpleStringTunableHandlerFactory.java
                         (rev 0)
+++ 
core3/impl/trunk/command-executor-impl/src/main/java/org/cytoscape/command/internal/tunables/SimpleStringTunableHandlerFactory.java
 2012-03-14 00:25:21 UTC (rev 28528)
@@ -0,0 +1,20 @@
+package org.cytoscape.command.internal.tunables;
+
+import org.cytoscape.work.BasicTunableHandlerFactory;
+
+
+public class SimpleStringTunableHandlerFactory<T extends StringTunableHandler> 
+       extends BasicTunableHandlerFactory<T> implements 
StringTunableHandlerFactory<T> {
+
+    /**
+     * Constructs this BasicStringTunableHandlerFactory.
+     * @param specificHandlerType The class of the specific handler to be 
constructed
+     * to handle the matching classes. For instance FloatHandler.class might 
be specified
+     * to handle values with a Float type.
+     * @param classesToMatch One or more class types that will be handled by 
this handler.
+     * For example the FloatHandler might handle both Float.class and 
float.class.
+     */
+    public SimpleStringTunableHandlerFactory(Class<T> specificHandlerType, 
Class<?>... classesToMatch ) {
+        super(specificHandlerType, classesToMatch);
+    }
+}

Added: 
core3/impl/trunk/command-executor-impl/src/main/java/org/cytoscape/command/internal/tunables/StringTunableHandlerFactory.java
===================================================================
--- 
core3/impl/trunk/command-executor-impl/src/main/java/org/cytoscape/command/internal/tunables/StringTunableHandlerFactory.java
                               (rev 0)
+++ 
core3/impl/trunk/command-executor-impl/src/main/java/org/cytoscape/command/internal/tunables/StringTunableHandlerFactory.java
       2012-03-14 00:25:21 UTC (rev 28528)
@@ -0,0 +1,9 @@
+
+
+package org.cytoscape.command.internal.tunables;
+
+
+import org.cytoscape.work.TunableHandlerFactory;
+
+public interface StringTunableHandlerFactory<T extends StringTunableHandler> 
extends TunableHandlerFactory<T> {
+}

Added: 
core3/impl/trunk/command-executor-impl/src/main/java/org/cytoscape/command/internal/tunables/URLTunableHandler.java
===================================================================
--- 
core3/impl/trunk/command-executor-impl/src/main/java/org/cytoscape/command/internal/tunables/URLTunableHandler.java
                         (rev 0)
+++ 
core3/impl/trunk/command-executor-impl/src/main/java/org/cytoscape/command/internal/tunables/URLTunableHandler.java
 2012-03-14 00:25:21 UTC (rev 28528)
@@ -0,0 +1,15 @@
+
+package org.cytoscape.command.internal.tunables;
+
+import org.cytoscape.work.Tunable;
+import java.lang.reflect.Field;
+import java.lang.reflect.Method;
+import java.net.URL;
+
+public class URLTunableHandler extends AbstractStringTunableHandler {
+    public URLTunableHandler(Field f, Object o, Tunable t) { super(f,o,t); }
+    public URLTunableHandler(Method get, Method set, Object o, Tunable t) { 
super(get,set,o,t); }
+       public Object processArg(String arg) throws Exception {
+               return new URL(arg);
+       }
+}

-- 
You received this message because you are subscribed to the Google Groups 
"cytoscape-cvs" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/cytoscape-cvs?hl=en.

Reply via email to