r28473 - in csplugins/trunk/toronto/jm/cy3-stateless-taskfactory-alt1: api/layout-api/src/main/java/org/cytoscape/view/layout impl/core-task-impl/src/main/java/org/cytoscape/task/internal/layout impl/core-task-impl/src/main/java/org/cytoscape/task/internal/quickstart/subnetworkbuilder impl/cpath2-impl/src/main/java/org/cytoscape/cpath2/internal/task impl/graphml-impl/src/main/java/org/cytoscape/io/internal/read/graphml impl/io-impl/impl/src/main/java/org/cytoscape/io/internal/read/sif impl/io-impl/impl/src/test/java/org/cytoscape/io/internal/read impl/io-impl/performance/src/main/java/org/cytoscape/io/read/sif impl/layout-cytoscape-impl/src/main/java/csapps/layout/algorithms impl/layout-cytoscape-impl/src/main/java/csapps/layout/algorithms/bioLayout impl/layout-cytoscape-impl/src/main/java/csapps/layout/algorithms/circularLayout impl/layout-cytoscape-impl/src/main/java/csapps/layout/algorithms/graphPartition impl/layout-cytoscape-impl/src/main/java/csapps/layout/alg! orithms/hierarchicalLayout impl/layout-impl/src/main/java/org/cytoscape/view/layout/internal/algorithms impl/layout-jgraph-impl/src/main/java/csapps/layout impl/layout-prefuse-impl/src/main/java/org/cytoscape/prefuse/layouts/internal impl/psi-mi-impl/impl/src/main/java/org/cytoscape/psi_mi/internal/plugin impl/psi-mi-impl/impl/src/test/java/org/cytoscape/psi_mi/internal/plugin impl/psi-mi-impl/performance/src/main/java/org/cytoscape/psi_mi/internal impl/swing-application-impl/src/main/java/org/cytoscape/internal/layout/ui

Fri, 09 Mar 2012 13:45:43 -0800

Author: jm
Date: 2012-03-09 13:45:31 -0800 (Fri, 09 Mar 2012)
New Revision: 28473

Added:
   
csplugins/trunk/toronto/jm/cy3-stateless-taskfactory-alt1/api/layout-api/src/main/java/org/cytoscape/view/layout/CyLayoutContext.java
Modified:
   
csplugins/trunk/toronto/jm/cy3-stateless-taskfactory-alt1/api/layout-api/src/main/java/org/cytoscape/view/layout/AbstractLayoutAlgorithm.java
   
csplugins/trunk/toronto/jm/cy3-stateless-taskfactory-alt1/api/layout-api/src/main/java/org/cytoscape/view/layout/AbstractLayoutAlgorithmContext.java
   
csplugins/trunk/toronto/jm/cy3-stateless-taskfactory-alt1/api/layout-api/src/main/java/org/cytoscape/view/layout/CyLayoutAlgorithm.java
   
csplugins/trunk/toronto/jm/cy3-stateless-taskfactory-alt1/impl/core-task-impl/src/main/java/org/cytoscape/task/internal/layout/ApplyPreferredLayoutTask.java
   
csplugins/trunk/toronto/jm/cy3-stateless-taskfactory-alt1/impl/core-task-impl/src/main/java/org/cytoscape/task/internal/quickstart/subnetworkbuilder/ApplyLayoutTask.java
   
csplugins/trunk/toronto/jm/cy3-stateless-taskfactory-alt1/impl/cpath2-impl/src/main/java/org/cytoscape/cpath2/internal/task/ExecuteGetRecordByCPathId.java
   
csplugins/trunk/toronto/jm/cy3-stateless-taskfactory-alt1/impl/graphml-impl/src/main/java/org/cytoscape/io/internal/read/graphml/GraphMLReader.java
   
csplugins/trunk/toronto/jm/cy3-stateless-taskfactory-alt1/impl/io-impl/impl/src/main/java/org/cytoscape/io/internal/read/sif/SIFNetworkReader.java
   
csplugins/trunk/toronto/jm/cy3-stateless-taskfactory-alt1/impl/io-impl/impl/src/test/java/org/cytoscape/io/internal/read/AbstractNetworkViewReaderTester.java
   
csplugins/trunk/toronto/jm/cy3-stateless-taskfactory-alt1/impl/io-impl/performance/src/main/java/org/cytoscape/io/read/sif/PerfTest.java
   
csplugins/trunk/toronto/jm/cy3-stateless-taskfactory-alt1/impl/layout-cytoscape-impl/src/main/java/csapps/layout/algorithms/GroupAttributesLayout.java
   
csplugins/trunk/toronto/jm/cy3-stateless-taskfactory-alt1/impl/layout-cytoscape-impl/src/main/java/csapps/layout/algorithms/StackedNodeLayout.java
   
csplugins/trunk/toronto/jm/cy3-stateless-taskfactory-alt1/impl/layout-cytoscape-impl/src/main/java/csapps/layout/algorithms/bioLayout/BioLayoutFRAlgorithm.java
   
csplugins/trunk/toronto/jm/cy3-stateless-taskfactory-alt1/impl/layout-cytoscape-impl/src/main/java/csapps/layout/algorithms/bioLayout/BioLayoutKKAlgorithm.java
   
csplugins/trunk/toronto/jm/cy3-stateless-taskfactory-alt1/impl/layout-cytoscape-impl/src/main/java/csapps/layout/algorithms/circularLayout/CircularLayoutAlgorithm.java
   
csplugins/trunk/toronto/jm/cy3-stateless-taskfactory-alt1/impl/layout-cytoscape-impl/src/main/java/csapps/layout/algorithms/graphPartition/AttributeCircleLayout.java
   
csplugins/trunk/toronto/jm/cy3-stateless-taskfactory-alt1/impl/layout-cytoscape-impl/src/main/java/csapps/layout/algorithms/graphPartition/DegreeSortedCircleLayout.java
   
csplugins/trunk/toronto/jm/cy3-stateless-taskfactory-alt1/impl/layout-cytoscape-impl/src/main/java/csapps/layout/algorithms/graphPartition/ISOMLayout.java
   
csplugins/trunk/toronto/jm/cy3-stateless-taskfactory-alt1/impl/layout-cytoscape-impl/src/main/java/csapps/layout/algorithms/hierarchicalLayout/HierarchicalLayoutAlgorithm.java
   
csplugins/trunk/toronto/jm/cy3-stateless-taskfactory-alt1/impl/layout-impl/src/main/java/org/cytoscape/view/layout/internal/algorithms/GridNodeLayout.java
   
csplugins/trunk/toronto/jm/cy3-stateless-taskfactory-alt1/impl/layout-jgraph-impl/src/main/java/csapps/layout/JGraphLayoutWrapper.java
   
csplugins/trunk/toronto/jm/cy3-stateless-taskfactory-alt1/impl/layout-prefuse-impl/src/main/java/org/cytoscape/prefuse/layouts/internal/ForceDirectedLayout.java
   
csplugins/trunk/toronto/jm/cy3-stateless-taskfactory-alt1/impl/psi-mi-impl/impl/src/main/java/org/cytoscape/psi_mi/internal/plugin/PSIMI10XMLNetworkViewReader.java
   
csplugins/trunk/toronto/jm/cy3-stateless-taskfactory-alt1/impl/psi-mi-impl/impl/src/main/java/org/cytoscape/psi_mi/internal/plugin/PSIMI25XMLNetworkViewReader.java
   
csplugins/trunk/toronto/jm/cy3-stateless-taskfactory-alt1/impl/psi-mi-impl/impl/src/main/java/org/cytoscape/psi_mi/internal/plugin/PsiMiTabReader.java
   
csplugins/trunk/toronto/jm/cy3-stateless-taskfactory-alt1/impl/psi-mi-impl/impl/src/test/java/org/cytoscape/psi_mi/internal/plugin/PsiMiNetworkViewReaderTest.java
   
csplugins/trunk/toronto/jm/cy3-stateless-taskfactory-alt1/impl/psi-mi-impl/impl/src/test/java/org/cytoscape/psi_mi/internal/plugin/PsiMiTabReaderTest.java
   
csplugins/trunk/toronto/jm/cy3-stateless-taskfactory-alt1/impl/psi-mi-impl/performance/src/main/java/org/cytoscape/psi_mi/internal/PerfTest.java
   
csplugins/trunk/toronto/jm/cy3-stateless-taskfactory-alt1/impl/swing-application-impl/src/main/java/org/cytoscape/internal/layout/ui/LayoutMenuPopulator.java
   
csplugins/trunk/toronto/jm/cy3-stateless-taskfactory-alt1/impl/swing-application-impl/src/main/java/org/cytoscape/internal/layout/ui/LayoutSettingsDialog.java
   
csplugins/trunk/toronto/jm/cy3-stateless-taskfactory-alt1/impl/swing-application-impl/src/main/java/org/cytoscape/internal/layout/ui/UndoSupportTaskFactory.java
Log:
Cleaned up CyLayoutAlgorithm API
Introduced CyLayoutContext as base interface for layout algorithm settings

Modified: 
csplugins/trunk/toronto/jm/cy3-stateless-taskfactory-alt1/api/layout-api/src/main/java/org/cytoscape/view/layout/AbstractLayoutAlgorithm.java
===================================================================
--- 
csplugins/trunk/toronto/jm/cy3-stateless-taskfactory-alt1/api/layout-api/src/main/java/org/cytoscape/view/layout/AbstractLayoutAlgorithm.java
       2012-03-09 21:44:57 UTC (rev 28472)
+++ 
csplugins/trunk/toronto/jm/cy3-stateless-taskfactory-alt1/api/layout-api/src/main/java/org/cytoscape/view/layout/AbstractLayoutAlgorithm.java
       2012-03-09 21:45:31 UTC (rev 28473)
@@ -35,8 +35,6 @@
 import java.util.List;
 import java.util.Set;
 
-import org.cytoscape.view.model.CyNetworkView;
-import org.cytoscape.work.TaskIterator;
 import org.cytoscape.work.TunableValidator;
 import org.cytoscape.work.TunableValidator.ValidationState;
 
@@ -45,7 +43,7 @@
  * The AbstractLayoutAlgorithm provides a basic implementation of a layout 
TaskFactory.
  * @CyAPI.Abstract.Class
  */
-abstract public class AbstractLayoutAlgorithm<T extends 
AbstractLayoutAlgorithmContext> implements CyLayoutAlgorithm<T> {
+abstract public class AbstractLayoutAlgorithm<T extends CyLayoutContext> 
implements CyLayoutAlgorithm<T> {
 
        private final boolean supportsSelectedOnly;
        private final String humanName;
@@ -125,21 +123,15 @@
                return new ArrayList<String>();
        }
 
-       public boolean isReady(T tunableContext, CyNetworkView networkView) {
-               tunableContext.setNetworkView(networkView);
+       @Override
+       public boolean isReady(T tunableContext) {
+               if (tunableContext.getNetworkView() == null) {
+                       return false;
+               }
                if (tunableContext instanceof TunableValidator) {
                        StringBuilder errors = new StringBuilder();
                        return ((TunableValidator) 
tunableContext).getValidationState(errors) == ValidationState.OK;
                }
                return true;
        }
-       
-       public final TaskIterator createTaskIterator(T tunableContext, 
CyNetworkView networkView) {
-               tunableContext.setNetworkView(networkView);
-               if (tunableContext.useSelectedOnly())
-                       tunableContext.initStaticNodes(networkView);
-               return createTaskIterator(tunableContext);
-       }
-
-       protected abstract TaskIterator createTaskIterator(T tunableContext);
 }

Modified: 
csplugins/trunk/toronto/jm/cy3-stateless-taskfactory-alt1/api/layout-api/src/main/java/org/cytoscape/view/layout/AbstractLayoutAlgorithmContext.java
===================================================================
--- 
csplugins/trunk/toronto/jm/cy3-stateless-taskfactory-alt1/api/layout-api/src/main/java/org/cytoscape/view/layout/AbstractLayoutAlgorithmContext.java
        2012-03-09 21:44:57 UTC (rev 28472)
+++ 
csplugins/trunk/toronto/jm/cy3-stateless-taskfactory-alt1/api/layout-api/src/main/java/org/cytoscape/view/layout/AbstractLayoutAlgorithmContext.java
        2012-03-09 21:45:31 UTC (rev 28473)
@@ -15,7 +15,7 @@
 import org.cytoscape.work.Tunable;
 import org.cytoscape.work.util.ListSingleSelection;
 
-public class AbstractLayoutAlgorithmContext {
+public class AbstractLayoutAlgorithmContext implements CyLayoutContext {
 
        private static final String ALL_NODES = " All Nodes";
        private static final String SELECTED_NODES_ONLY = " Selected Nodes 
Only";
@@ -145,6 +145,10 @@
                node_count = Math.sqrt(node_count);
                node_count *= 100;
                currentSize = new Dimension((int) node_count, (int) node_count);
+               
+               if (useSelectedOnly()) {
+                       initStaticNodes(networkView);
+               }
        }
        
        public CyNetworkView getNetworkView() {

Modified: 
csplugins/trunk/toronto/jm/cy3-stateless-taskfactory-alt1/api/layout-api/src/main/java/org/cytoscape/view/layout/CyLayoutAlgorithm.java
===================================================================
--- 
csplugins/trunk/toronto/jm/cy3-stateless-taskfactory-alt1/api/layout-api/src/main/java/org/cytoscape/view/layout/CyLayoutAlgorithm.java
     2012-03-09 21:44:57 UTC (rev 28472)
+++ 
csplugins/trunk/toronto/jm/cy3-stateless-taskfactory-alt1/api/layout-api/src/main/java/org/cytoscape/view/layout/CyLayoutAlgorithm.java
     2012-03-09 21:45:31 UTC (rev 28473)
@@ -33,17 +33,16 @@
 import java.util.List;
 import java.util.Set;
 
-import org.cytoscape.view.model.CyNetworkView;
 import org.cytoscape.work.TaskIterator;
 
 /**
  * An extension of NetworkViewTaskFactory specific to layout algorithms.
  * @CyAPI.Spi.Interface
  */
-public interface CyLayoutAlgorithm<T> {
-       TaskIterator createTaskIterator(T tunableContext, CyNetworkView 
networkView);
-       boolean isReady(T tunableContext, CyNetworkView networkView);
-       T createTunableContext();
+public interface CyLayoutAlgorithm<T extends CyLayoutContext> {
+       TaskIterator createTaskIterator(T layoutContext);
+       boolean isReady(T layoutContext);
+       T createLayoutContext();
        
        /**
         * Tests to see if this layout supports doing a layout on a subset of 
the

Added: 
csplugins/trunk/toronto/jm/cy3-stateless-taskfactory-alt1/api/layout-api/src/main/java/org/cytoscape/view/layout/CyLayoutContext.java
===================================================================
--- 
csplugins/trunk/toronto/jm/cy3-stateless-taskfactory-alt1/api/layout-api/src/main/java/org/cytoscape/view/layout/CyLayoutContext.java
                               (rev 0)
+++ 
csplugins/trunk/toronto/jm/cy3-stateless-taskfactory-alt1/api/layout-api/src/main/java/org/cytoscape/view/layout/CyLayoutContext.java
       2012-03-09 21:45:31 UTC (rev 28473)
@@ -0,0 +1,8 @@
+package org.cytoscape.view.layout;
+
+import org.cytoscape.view.model.CyNetworkView;
+
+public interface CyLayoutContext {
+       CyNetworkView getNetworkView();
+       void setNetworkView(CyNetworkView networkView);
+}

Modified: 
csplugins/trunk/toronto/jm/cy3-stateless-taskfactory-alt1/impl/core-task-impl/src/main/java/org/cytoscape/task/internal/layout/ApplyPreferredLayoutTask.java
===================================================================
--- 
csplugins/trunk/toronto/jm/cy3-stateless-taskfactory-alt1/impl/core-task-impl/src/main/java/org/cytoscape/task/internal/layout/ApplyPreferredLayoutTask.java
        2012-03-09 21:44:57 UTC (rev 28472)
+++ 
csplugins/trunk/toronto/jm/cy3-stateless-taskfactory-alt1/impl/core-task-impl/src/main/java/org/cytoscape/task/internal/layout/ApplyPreferredLayoutTask.java
        2012-03-09 21:45:31 UTC (rev 28473)
@@ -33,6 +33,7 @@
 import org.cytoscape.view.model.CyNetworkView;
 import org.cytoscape.view.layout.CyLayoutAlgorithmManager;
 import org.cytoscape.view.layout.CyLayoutAlgorithm;
+import org.cytoscape.view.layout.CyLayoutContext;
 import org.cytoscape.work.TaskMonitor;
 import org.cytoscape.work.undo.UndoSupport;
 
@@ -82,10 +83,11 @@
                        pref = props.getProperty("preferredLayoutAlgorithm", 
DEF_LAYOUT);
                tm.setProgress(0.2d);
                final CyLayoutAlgorithm layout = layouts.getLayout(pref);
-
                if (layout != null) {
                        tm.setProgress(0.6);
-                       
insertTasksAfterCurrentTask(layout.createTaskIterator(layout.createTunableContext(),
 view));
+                       CyLayoutContext context = layout.createLayoutContext();
+                       context.setNetworkView(view);
+                       
insertTasksAfterCurrentTask(layout.createTaskIterator(context));
                } else {
                        throw new IllegalArgumentException("Couldn't find 
layout algorithm: " + pref);
                }

Modified: 
csplugins/trunk/toronto/jm/cy3-stateless-taskfactory-alt1/impl/core-task-impl/src/main/java/org/cytoscape/task/internal/quickstart/subnetworkbuilder/ApplyLayoutTask.java
===================================================================
--- 
csplugins/trunk/toronto/jm/cy3-stateless-taskfactory-alt1/impl/core-task-impl/src/main/java/org/cytoscape/task/internal/quickstart/subnetworkbuilder/ApplyLayoutTask.java
   2012-03-09 21:44:57 UTC (rev 28472)
+++ 
csplugins/trunk/toronto/jm/cy3-stateless-taskfactory-alt1/impl/core-task-impl/src/main/java/org/cytoscape/task/internal/quickstart/subnetworkbuilder/ApplyLayoutTask.java
   2012-03-09 21:45:31 UTC (rev 28473)
@@ -2,6 +2,7 @@
 
 import org.cytoscape.view.layout.CyLayoutAlgorithm;
 import org.cytoscape.view.layout.CyLayoutAlgorithmManager;
+import org.cytoscape.view.layout.CyLayoutContext;
 import org.cytoscape.work.AbstractTask;
 import org.cytoscape.work.TaskMonitor;
 
@@ -21,9 +22,10 @@
 //     final CyLayoutAlgorithm layout = 
layouts.getLayout(CyLayoutAlgorithmManager.DEFAULT_LAYOUT_NAME);
        final CyLayoutAlgorithm layout = layouts.getDefaultLayout();
        taskMonitor.setProgress(0.1);
-       Object context = layout.createTunableContext();
+       CyLayoutContext context = layout.createLayoutContext();
+       context.setNetworkView(util.appManager.getCurrentNetworkView());
        taskMonitor.setProgress(0.2);
-       insertTasksAfterCurrentTask(layout.createTaskIterator(context, 
util.appManager.getCurrentNetworkView()));
+       insertTasksAfterCurrentTask(layout.createTaskIterator(context));
        
        taskMonitor.setProgress(1.0);
     }

Modified: 
csplugins/trunk/toronto/jm/cy3-stateless-taskfactory-alt1/impl/cpath2-impl/src/main/java/org/cytoscape/cpath2/internal/task/ExecuteGetRecordByCPathId.java
===================================================================
--- 
csplugins/trunk/toronto/jm/cy3-stateless-taskfactory-alt1/impl/cpath2-impl/src/main/java/org/cytoscape/cpath2/internal/task/ExecuteGetRecordByCPathId.java
  2012-03-09 21:44:57 UTC (rev 28472)
+++ 
csplugins/trunk/toronto/jm/cy3-stateless-taskfactory-alt1/impl/cpath2-impl/src/main/java/org/cytoscape/cpath2/internal/task/ExecuteGetRecordByCPathId.java
  2012-03-09 21:45:31 UTC (rev 28473)
@@ -42,6 +42,7 @@
 import org.cytoscape.session.CyNetworkNaming;
 import org.cytoscape.view.layout.CyLayoutAlgorithm;
 import org.cytoscape.view.layout.CyLayoutAlgorithmManager;
+import org.cytoscape.view.layout.CyLayoutContext;
 import org.cytoscape.view.model.CyNetworkView;
 import org.cytoscape.view.vizmap.VisualMappingManager;
 import org.cytoscape.view.vizmap.VisualStyle;
@@ -207,7 +208,9 @@
 
                        CyLayoutAlgorithmManager layoutManager = 
cPathFactory.getCyLayoutAlgorithmManager();
                        CyLayoutAlgorithm layout = 
layoutManager.getDefaultLayout();
-                       
insertTasksAfterCurrentTask(layout.createTaskIterator(layout.createTunableContext(),
 view));
+                       CyLayoutContext context = layout.createLayoutContext();
+                       context.setNetworkView(view);
+                       
insertTasksAfterCurrentTask(layout.createTaskIterator(context));
 
                } catch (IOException e) {
                        throw new Exception("Failed to retrieve records.", e);

Modified: 
csplugins/trunk/toronto/jm/cy3-stateless-taskfactory-alt1/impl/graphml-impl/src/main/java/org/cytoscape/io/internal/read/graphml/GraphMLReader.java
===================================================================
--- 
csplugins/trunk/toronto/jm/cy3-stateless-taskfactory-alt1/impl/graphml-impl/src/main/java/org/cytoscape/io/internal/read/graphml/GraphMLReader.java
 2012-03-09 21:44:57 UTC (rev 28472)
+++ 
csplugins/trunk/toronto/jm/cy3-stateless-taskfactory-alt1/impl/graphml-impl/src/main/java/org/cytoscape/io/internal/read/graphml/GraphMLReader.java
 2012-03-09 21:45:31 UTC (rev 28473)
@@ -14,8 +14,10 @@
 import org.cytoscape.model.CyNetwork;
 import org.cytoscape.model.CyNetworkFactory;
 import org.cytoscape.model.subnetwork.CyRootNetworkManager;
+import org.cytoscape.view.layout.AbstractLayoutAlgorithmContext;
 import org.cytoscape.view.layout.CyLayoutAlgorithm;
 import org.cytoscape.view.layout.CyLayoutAlgorithmManager;
+import org.cytoscape.view.layout.CyLayoutContext;
 import org.cytoscape.view.model.CyNetworkView;
 import org.cytoscape.view.model.CyNetworkViewFactory;
 import org.cytoscape.view.vizmap.VisualStyle;
@@ -23,8 +25,6 @@
 import org.cytoscape.work.Task;
 import org.cytoscape.work.TaskIterator;
 import org.cytoscape.work.TaskMonitor;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 import org.xml.sax.InputSource;
 import org.xml.sax.helpers.ParserAdapter;
 
@@ -99,9 +99,10 @@
                final CyNetworkView view = 
cyNetworkViewFactory.createNetworkView(network);
 
                final CyLayoutAlgorithm layout = layouts.getDefaultLayout();
-               
+               CyLayoutContext context = layout.createLayoutContext();
+               context.setNetworkView(view);
                // Force to run this task here to avoid concurrency problem.
-               TaskIterator itr = layout.createTaskIterator(null, view);
+               TaskIterator itr = layout.createTaskIterator(context);
                Task nextTask = itr.next();
                try {
                        nextTask.run(taskMonitor);

Modified: 
csplugins/trunk/toronto/jm/cy3-stateless-taskfactory-alt1/impl/io-impl/impl/src/main/java/org/cytoscape/io/internal/read/sif/SIFNetworkReader.java
===================================================================
--- 
csplugins/trunk/toronto/jm/cy3-stateless-taskfactory-alt1/impl/io-impl/impl/src/main/java/org/cytoscape/io/internal/read/sif/SIFNetworkReader.java
  2012-03-09 21:44:57 UTC (rev 28472)
+++ 
csplugins/trunk/toronto/jm/cy3-stateless-taskfactory-alt1/impl/io-impl/impl/src/main/java/org/cytoscape/io/internal/read/sif/SIFNetworkReader.java
  2012-03-09 21:45:31 UTC (rev 28473)
@@ -45,6 +45,7 @@
 import org.cytoscape.model.CyTableEntry;
 import org.cytoscape.view.layout.CyLayoutAlgorithm;
 import org.cytoscape.view.layout.CyLayoutAlgorithmManager;
+import org.cytoscape.view.layout.CyLayoutContext;
 import org.cytoscape.view.model.CyNetworkView;
 import org.cytoscape.view.model.CyNetworkViewFactory;
 import org.cytoscape.work.Task;
@@ -190,9 +191,10 @@
                final CyNetworkView view = 
cyNetworkViewFactory.createNetworkView(network);
 
                final CyLayoutAlgorithm layout = layouts.getDefaultLayout();
-               
+               CyLayoutContext context = layout.createLayoutContext();
+               context.setNetworkView(view);
                // Force to run this task here to avoid concurrency problem.
-               TaskIterator itr = layout.createTaskIterator(null, view);
+               TaskIterator itr = layout.createTaskIterator(context);
                Task nextTask = itr.next();
                try {
                        nextTask.run(parentTaskMonitor);

Modified: 
csplugins/trunk/toronto/jm/cy3-stateless-taskfactory-alt1/impl/io-impl/impl/src/test/java/org/cytoscape/io/internal/read/AbstractNetworkViewReaderTester.java
===================================================================
--- 
csplugins/trunk/toronto/jm/cy3-stateless-taskfactory-alt1/impl/io-impl/impl/src/test/java/org/cytoscape/io/internal/read/AbstractNetworkViewReaderTester.java
       2012-03-09 21:44:57 UTC (rev 28472)
+++ 
csplugins/trunk/toronto/jm/cy3-stateless-taskfactory-alt1/impl/io-impl/impl/src/test/java/org/cytoscape/io/internal/read/AbstractNetworkViewReaderTester.java
       2012-03-09 21:45:31 UTC (rev 28473)
@@ -23,6 +23,7 @@
 import org.cytoscape.property.SimpleCyProperty;
 import org.cytoscape.view.layout.CyLayoutAlgorithm;
 import org.cytoscape.view.layout.CyLayoutAlgorithmManager;
+import org.cytoscape.view.layout.CyLayoutContext;
 import org.cytoscape.view.model.CyNetworkView;
 import org.cytoscape.view.model.CyNetworkViewFactory;
 import org.cytoscape.work.AbstractTask;
@@ -51,8 +52,11 @@
        public void setUp() throws Exception {
                taskMonitor = mock(TaskMonitor.class);
 
+               CyLayoutContext context = mock(CyLayoutContext.class);
+               
                CyLayoutAlgorithm def = mock(CyLayoutAlgorithm.class);
-               when(def.createTaskIterator(Mockito.any(), 
Mockito.any(CyNetworkView.class))).thenReturn(new TaskIterator(new 
SimpleTask()));
+               when(def.createLayoutContext()).thenReturn(context);
+               
when(def.createTaskIterator(Mockito.any(CyLayoutContext.class))).thenReturn(new 
TaskIterator(new SimpleTask()));
 
                layouts = mock(CyLayoutAlgorithmManager.class);
                when(layouts.getDefaultLayout()).thenReturn(def);

Modified: 
csplugins/trunk/toronto/jm/cy3-stateless-taskfactory-alt1/impl/io-impl/performance/src/main/java/org/cytoscape/io/read/sif/PerfTest.java
===================================================================
--- 
csplugins/trunk/toronto/jm/cy3-stateless-taskfactory-alt1/impl/io-impl/performance/src/main/java/org/cytoscape/io/read/sif/PerfTest.java
    2012-03-09 21:44:57 UTC (rev 28472)
+++ 
csplugins/trunk/toronto/jm/cy3-stateless-taskfactory-alt1/impl/io-impl/performance/src/main/java/org/cytoscape/io/read/sif/PerfTest.java
    2012-03-09 21:45:31 UTC (rev 28473)
@@ -25,6 +25,7 @@
 import org.cytoscape.property.SimpleCyProperty;
 import org.cytoscape.view.layout.CyLayoutAlgorithm;
 import org.cytoscape.view.layout.CyLayoutAlgorithmManager;
+import org.cytoscape.view.layout.CyLayoutContext;
 import org.cytoscape.view.model.CyNetworkView;
 import org.cytoscape.view.model.CyNetworkViewFactory;
 import org.cytoscape.model.subnetwork.CyRootNetwork;
@@ -56,7 +57,7 @@
                taskMonitor = mock(TaskMonitor.class);
 
                CyLayoutAlgorithm def = mock(CyLayoutAlgorithm.class);
-               when(def.createTaskIterator(Mockito.any(), 
Mockito.any(CyNetworkView.class))).thenReturn(new TaskIterator(new 
SimpleTask()));
+               
when(def.createTaskIterator(Mockito.any(CyLayoutContext.class))).thenReturn(new 
TaskIterator(new SimpleTask()));
 
                layouts = mock(CyLayoutAlgorithmManager.class);
                when(layouts.getDefaultLayout()).thenReturn(def);

Modified: 
csplugins/trunk/toronto/jm/cy3-stateless-taskfactory-alt1/impl/layout-cytoscape-impl/src/main/java/csapps/layout/algorithms/GroupAttributesLayout.java
===================================================================
--- 
csplugins/trunk/toronto/jm/cy3-stateless-taskfactory-alt1/impl/layout-cytoscape-impl/src/main/java/csapps/layout/algorithms/GroupAttributesLayout.java
      2012-03-09 21:44:57 UTC (rev 28472)
+++ 
csplugins/trunk/toronto/jm/cy3-stateless-taskfactory-alt1/impl/layout-cytoscape-impl/src/main/java/csapps/layout/algorithms/GroupAttributesLayout.java
      2012-03-09 21:45:31 UTC (rev 28473)
@@ -85,7 +85,7 @@
        }
 
        @Override
-       public GroupAttributesLayoutContext createTunableContext() {
+       public GroupAttributesLayoutContext createLayoutContext() {
                return new GroupAttributesLayoutContext(supportsSelectedOnly(), 
supportsNodeAttributes(), supportsEdgeAttributes());
        }
 }

Modified: 
csplugins/trunk/toronto/jm/cy3-stateless-taskfactory-alt1/impl/layout-cytoscape-impl/src/main/java/csapps/layout/algorithms/StackedNodeLayout.java
===================================================================
--- 
csplugins/trunk/toronto/jm/cy3-stateless-taskfactory-alt1/impl/layout-cytoscape-impl/src/main/java/csapps/layout/algorithms/StackedNodeLayout.java
  2012-03-09 21:44:57 UTC (rev 28472)
+++ 
csplugins/trunk/toronto/jm/cy3-stateless-taskfactory-alt1/impl/layout-cytoscape-impl/src/main/java/csapps/layout/algorithms/StackedNodeLayout.java
  2012-03-09 21:45:31 UTC (rev 28473)
@@ -49,7 +49,7 @@
        }
        
        @Override
-       public StackedNodeLayoutContext createTunableContext() {
+       public StackedNodeLayoutContext createLayoutContext() {
                return new StackedNodeLayoutContext(supportsSelectedOnly(), 
supportsNodeAttributes(), supportsEdgeAttributes());
        }
 }

Modified: 
csplugins/trunk/toronto/jm/cy3-stateless-taskfactory-alt1/impl/layout-cytoscape-impl/src/main/java/csapps/layout/algorithms/bioLayout/BioLayoutFRAlgorithm.java
===================================================================
--- 
csplugins/trunk/toronto/jm/cy3-stateless-taskfactory-alt1/impl/layout-cytoscape-impl/src/main/java/csapps/layout/algorithms/bioLayout/BioLayoutFRAlgorithm.java
     2012-03-09 21:44:57 UTC (rev 28472)
+++ 
csplugins/trunk/toronto/jm/cy3-stateless-taskfactory-alt1/impl/layout-cytoscape-impl/src/main/java/csapps/layout/algorithms/bioLayout/BioLayoutFRAlgorithm.java
     2012-03-09 21:45:31 UTC (rev 28473)
@@ -70,7 +70,7 @@
        }
        
        @Override
-       public BioLayoutFRContext createTunableContext() {
+       public BioLayoutFRContext createLayoutContext() {
                return new BioLayoutFRContext(supportsSelectedOnly(), 
supportsNodeAttributes(), supportsEdgeAttributes());
        }
 }

Modified: 
csplugins/trunk/toronto/jm/cy3-stateless-taskfactory-alt1/impl/layout-cytoscape-impl/src/main/java/csapps/layout/algorithms/bioLayout/BioLayoutKKAlgorithm.java
===================================================================
--- 
csplugins/trunk/toronto/jm/cy3-stateless-taskfactory-alt1/impl/layout-cytoscape-impl/src/main/java/csapps/layout/algorithms/bioLayout/BioLayoutKKAlgorithm.java
     2012-03-09 21:44:57 UTC (rev 28472)
+++ 
csplugins/trunk/toronto/jm/cy3-stateless-taskfactory-alt1/impl/layout-cytoscape-impl/src/main/java/csapps/layout/algorithms/bioLayout/BioLayoutKKAlgorithm.java
     2012-03-09 21:45:31 UTC (rev 28473)
@@ -70,7 +70,7 @@
        }
        
        @Override
-       public BioLayoutKKContext createTunableContext() {
+       public BioLayoutKKContext createLayoutContext() {
                return new BioLayoutKKContext(supportsSelectedOnly(), 
supportsNodeAttributes(), supportsEdgeAttributes());
        }
 }

Modified: 
csplugins/trunk/toronto/jm/cy3-stateless-taskfactory-alt1/impl/layout-cytoscape-impl/src/main/java/csapps/layout/algorithms/circularLayout/CircularLayoutAlgorithm.java
===================================================================
--- 
csplugins/trunk/toronto/jm/cy3-stateless-taskfactory-alt1/impl/layout-cytoscape-impl/src/main/java/csapps/layout/algorithms/circularLayout/CircularLayoutAlgorithm.java
     2012-03-09 21:44:57 UTC (rev 28472)
+++ 
csplugins/trunk/toronto/jm/cy3-stateless-taskfactory-alt1/impl/layout-cytoscape-impl/src/main/java/csapps/layout/algorithms/circularLayout/CircularLayoutAlgorithm.java
     2012-03-09 21:45:31 UTC (rev 28473)
@@ -20,7 +20,7 @@
        }
        
        @Override
-       public CircularLayoutContext createTunableContext() {
+       public CircularLayoutContext createLayoutContext() {
                return new CircularLayoutContext(supportsSelectedOnly(), 
supportsNodeAttributes(), supportsEdgeAttributes());
        }
 }

Modified: 
csplugins/trunk/toronto/jm/cy3-stateless-taskfactory-alt1/impl/layout-cytoscape-impl/src/main/java/csapps/layout/algorithms/graphPartition/AttributeCircleLayout.java
===================================================================
--- 
csplugins/trunk/toronto/jm/cy3-stateless-taskfactory-alt1/impl/layout-cytoscape-impl/src/main/java/csapps/layout/algorithms/graphPartition/AttributeCircleLayout.java
       2012-03-09 21:44:57 UTC (rev 28472)
+++ 
csplugins/trunk/toronto/jm/cy3-stateless-taskfactory-alt1/impl/layout-cytoscape-impl/src/main/java/csapps/layout/algorithms/graphPartition/AttributeCircleLayout.java
       2012-03-09 21:45:31 UTC (rev 28473)
@@ -105,7 +105,7 @@
        }
        
        @Override
-       public AttributeCircleLayoutContext createTunableContext() {
+       public AttributeCircleLayoutContext createLayoutContext() {
                return new AttributeCircleLayoutContext(supportsSelectedOnly(), 
supportsNodeAttributes(), supportsEdgeAttributes());
        }
 }

Modified: 
csplugins/trunk/toronto/jm/cy3-stateless-taskfactory-alt1/impl/layout-cytoscape-impl/src/main/java/csapps/layout/algorithms/graphPartition/DegreeSortedCircleLayout.java
===================================================================
--- 
csplugins/trunk/toronto/jm/cy3-stateless-taskfactory-alt1/impl/layout-cytoscape-impl/src/main/java/csapps/layout/algorithms/graphPartition/DegreeSortedCircleLayout.java
    2012-03-09 21:44:57 UTC (rev 28472)
+++ 
csplugins/trunk/toronto/jm/cy3-stateless-taskfactory-alt1/impl/layout-cytoscape-impl/src/main/java/csapps/layout/algorithms/graphPartition/DegreeSortedCircleLayout.java
    2012-03-09 21:45:31 UTC (rev 28473)
@@ -19,7 +19,7 @@
        }
        
        @Override
-       public DegreeSortedCircleContext createTunableContext() {
+       public DegreeSortedCircleContext createLayoutContext() {
                return new DegreeSortedCircleContext(supportsSelectedOnly(), 
supportsNodeAttributes(), supportsEdgeAttributes());
        }
 }

Modified: 
csplugins/trunk/toronto/jm/cy3-stateless-taskfactory-alt1/impl/layout-cytoscape-impl/src/main/java/csapps/layout/algorithms/graphPartition/ISOMLayout.java
===================================================================
--- 
csplugins/trunk/toronto/jm/cy3-stateless-taskfactory-alt1/impl/layout-cytoscape-impl/src/main/java/csapps/layout/algorithms/graphPartition/ISOMLayout.java
  2012-03-09 21:44:57 UTC (rev 28472)
+++ 
csplugins/trunk/toronto/jm/cy3-stateless-taskfactory-alt1/impl/layout-cytoscape-impl/src/main/java/csapps/layout/algorithms/graphPartition/ISOMLayout.java
  2012-03-09 21:45:31 UTC (rev 28473)
@@ -22,7 +22,7 @@
        }
        
        @Override
-       public ISOMLayoutContext createTunableContext() {
+       public ISOMLayoutContext createLayoutContext() {
                return new ISOMLayoutContext(supportsSelectedOnly(), 
supportsNodeAttributes(), supportsEdgeAttributes());
        }
 }

Modified: 
csplugins/trunk/toronto/jm/cy3-stateless-taskfactory-alt1/impl/layout-cytoscape-impl/src/main/java/csapps/layout/algorithms/hierarchicalLayout/HierarchicalLayoutAlgorithm.java
===================================================================
--- 
csplugins/trunk/toronto/jm/cy3-stateless-taskfactory-alt1/impl/layout-cytoscape-impl/src/main/java/csapps/layout/algorithms/hierarchicalLayout/HierarchicalLayoutAlgorithm.java
     2012-03-09 21:44:57 UTC (rev 28472)
+++ 
csplugins/trunk/toronto/jm/cy3-stateless-taskfactory-alt1/impl/layout-cytoscape-impl/src/main/java/csapps/layout/algorithms/hierarchicalLayout/HierarchicalLayoutAlgorithm.java
     2012-03-09 21:45:31 UTC (rev 28473)
@@ -80,7 +80,7 @@
        }
        
        @Override
-       public HierarchicalLayoutContext createTunableContext() {
+       public HierarchicalLayoutContext createLayoutContext() {
                return new HierarchicalLayoutContext(supportsSelectedOnly(), 
supportsNodeAttributes(), supportsEdgeAttributes());
        }
 }

Modified: 
csplugins/trunk/toronto/jm/cy3-stateless-taskfactory-alt1/impl/layout-impl/src/main/java/org/cytoscape/view/layout/internal/algorithms/GridNodeLayout.java
===================================================================
--- 
csplugins/trunk/toronto/jm/cy3-stateless-taskfactory-alt1/impl/layout-impl/src/main/java/org/cytoscape/view/layout/internal/algorithms/GridNodeLayout.java
  2012-03-09 21:44:57 UTC (rev 28472)
+++ 
csplugins/trunk/toronto/jm/cy3-stateless-taskfactory-alt1/impl/layout-impl/src/main/java/org/cytoscape/view/layout/internal/algorithms/GridNodeLayout.java
  2012-03-09 21:45:31 UTC (rev 28473)
@@ -52,7 +52,7 @@
        }
        
        @Override
-       public GridNodeLayoutContext createTunableContext() {
+       public GridNodeLayoutContext createLayoutContext() {
                return new GridNodeLayoutContext(supportsSelectedOnly(), 
supportsNodeAttributes(), supportsEdgeAttributes());
        }
 }

Modified: 
csplugins/trunk/toronto/jm/cy3-stateless-taskfactory-alt1/impl/layout-jgraph-impl/src/main/java/csapps/layout/JGraphLayoutWrapper.java
===================================================================
--- 
csplugins/trunk/toronto/jm/cy3-stateless-taskfactory-alt1/impl/layout-jgraph-impl/src/main/java/csapps/layout/JGraphLayoutWrapper.java
      2012-03-09 21:44:57 UTC (rev 28472)
+++ 
csplugins/trunk/toronto/jm/cy3-stateless-taskfactory-alt1/impl/layout-jgraph-impl/src/main/java/csapps/layout/JGraphLayoutWrapper.java
      2012-03-09 21:45:31 UTC (rev 28473)
@@ -161,7 +161,7 @@
        }
        
        @Override
-       public AbstractLayoutAlgorithmContext createTunableContext() {
+       public AbstractLayoutAlgorithmContext createLayoutContext() {
                return new 
AbstractLayoutAlgorithmContext(supportsSelectedOnly(), 
supportsNodeAttributes(), supportsEdgeAttributes());
        }
 }

Modified: 
csplugins/trunk/toronto/jm/cy3-stateless-taskfactory-alt1/impl/layout-prefuse-impl/src/main/java/org/cytoscape/prefuse/layouts/internal/ForceDirectedLayout.java
===================================================================
--- 
csplugins/trunk/toronto/jm/cy3-stateless-taskfactory-alt1/impl/layout-prefuse-impl/src/main/java/org/cytoscape/prefuse/layouts/internal/ForceDirectedLayout.java
    2012-03-09 21:44:57 UTC (rev 28472)
+++ 
csplugins/trunk/toronto/jm/cy3-stateless-taskfactory-alt1/impl/layout-prefuse-impl/src/main/java/org/cytoscape/prefuse/layouts/internal/ForceDirectedLayout.java
    2012-03-09 21:45:31 UTC (rev 28473)
@@ -41,7 +41,7 @@
        }
        
        @Override
-       public ForceDirectedLayoutContext createTunableContext() {
+       public ForceDirectedLayoutContext createLayoutContext() {
                return new ForceDirectedLayoutContext(supportsSelectedOnly(), 
supportsNodeAttributes(), supportsEdgeAttributes());
        }
 }

Modified: 
csplugins/trunk/toronto/jm/cy3-stateless-taskfactory-alt1/impl/psi-mi-impl/impl/src/main/java/org/cytoscape/psi_mi/internal/plugin/PSIMI10XMLNetworkViewReader.java
===================================================================
--- 
csplugins/trunk/toronto/jm/cy3-stateless-taskfactory-alt1/impl/psi-mi-impl/impl/src/main/java/org/cytoscape/psi_mi/internal/plugin/PSIMI10XMLNetworkViewReader.java
 2012-03-09 21:44:57 UTC (rev 28472)
+++ 
csplugins/trunk/toronto/jm/cy3-stateless-taskfactory-alt1/impl/psi-mi-impl/impl/src/main/java/org/cytoscape/psi_mi/internal/plugin/PSIMI10XMLNetworkViewReader.java
 2012-03-09 21:45:31 UTC (rev 28473)
@@ -16,6 +16,7 @@
 import org.cytoscape.psi_mi.internal.data_mapper.PSIMI25EntryMapper;
 import org.cytoscape.psi_mi.internal.model.Interaction;
 import org.cytoscape.view.layout.CyLayoutAlgorithm;
+import org.cytoscape.view.layout.CyLayoutContext;
 import org.cytoscape.view.layout.CyLayoutAlgorithmManager;
 import org.cytoscape.view.model.CyNetworkView;
 import org.cytoscape.view.model.CyNetworkViewFactory;
@@ -109,8 +110,10 @@
        public CyNetworkView buildCyNetworkView(final CyNetwork network) {
                final CyNetworkView view = 
networkViewFactory.createNetworkView(network);
                final CyLayoutAlgorithm layout = layouts.getDefaultLayout();
+               CyLayoutContext context = layout.createLayoutContext();
+               context.setNetworkView(view);
                // Force to run this task here to avoid concurrency problem.
-               TaskIterator itr = layout.createTaskIterator(null, view);
+               TaskIterator itr = layout.createTaskIterator(context);
                Task nextTask = itr.next();
                try {
                        nextTask.run(parentTaskMonitor);

Modified: 
csplugins/trunk/toronto/jm/cy3-stateless-taskfactory-alt1/impl/psi-mi-impl/impl/src/main/java/org/cytoscape/psi_mi/internal/plugin/PSIMI25XMLNetworkViewReader.java
===================================================================
--- 
csplugins/trunk/toronto/jm/cy3-stateless-taskfactory-alt1/impl/psi-mi-impl/impl/src/main/java/org/cytoscape/psi_mi/internal/plugin/PSIMI25XMLNetworkViewReader.java
 2012-03-09 21:44:57 UTC (rev 28472)
+++ 
csplugins/trunk/toronto/jm/cy3-stateless-taskfactory-alt1/impl/psi-mi-impl/impl/src/main/java/org/cytoscape/psi_mi/internal/plugin/PSIMI25XMLNetworkViewReader.java
 2012-03-09 21:45:31 UTC (rev 28473)
@@ -7,6 +7,7 @@
 import org.cytoscape.model.CyNetworkFactory;
 import org.cytoscape.psi_mi.internal.data_mapper.PSIMI25EntryMapper;
 import org.cytoscape.view.layout.CyLayoutAlgorithm;
+import org.cytoscape.view.layout.CyLayoutContext;
 import org.cytoscape.view.layout.CyLayoutAlgorithmManager;
 import org.cytoscape.view.model.CyNetworkView;
 import org.cytoscape.view.model.CyNetworkViewFactory;
@@ -84,8 +85,10 @@
        public CyNetworkView buildCyNetworkView(final CyNetwork network) {
                final CyNetworkView view = 
networkViewFactory.createNetworkView(network);
                final CyLayoutAlgorithm layout = layouts.getDefaultLayout();
+               CyLayoutContext context = layout.createLayoutContext();
+               context.setNetworkView(view);
                // Force to run this task here to avoid concurrency problem.
-               TaskIterator itr = layout.createTaskIterator(null, view);
+               TaskIterator itr = layout.createTaskIterator(context);
                Task nextTask = itr.next();
                try {
                        nextTask.run(parentTaskMonitor);

Modified: 
csplugins/trunk/toronto/jm/cy3-stateless-taskfactory-alt1/impl/psi-mi-impl/impl/src/main/java/org/cytoscape/psi_mi/internal/plugin/PsiMiTabReader.java
===================================================================
--- 
csplugins/trunk/toronto/jm/cy3-stateless-taskfactory-alt1/impl/psi-mi-impl/impl/src/main/java/org/cytoscape/psi_mi/internal/plugin/PsiMiTabReader.java
      2012-03-09 21:44:57 UTC (rev 28472)
+++ 
csplugins/trunk/toronto/jm/cy3-stateless-taskfactory-alt1/impl/psi-mi-impl/impl/src/main/java/org/cytoscape/psi_mi/internal/plugin/PsiMiTabReader.java
      2012-03-09 21:45:31 UTC (rev 28473)
@@ -9,6 +9,7 @@
 import org.cytoscape.model.CyNetworkFactory;
 import org.cytoscape.property.CyProperty;
 import org.cytoscape.view.layout.CyLayoutAlgorithm;
+import org.cytoscape.view.layout.CyLayoutContext;
 import org.cytoscape.view.layout.CyLayoutAlgorithmManager;
 import org.cytoscape.view.model.CyNetworkView;
 import org.cytoscape.view.model.CyNetworkViewFactory;
@@ -82,9 +83,10 @@
                        pref = 
prop.getProperties().getProperty("preferredLayoutAlgorithm", pref);
 
                final CyLayoutAlgorithm layout = layouts.getLayout(pref);
-               
+               CyLayoutContext context = layout.createLayoutContext();
+               context.setNetworkView(view);
                // Force to run this task here to avoid concurrency problem.
-               TaskIterator itr = layout.createTaskIterator(null, view);
+               TaskIterator itr = layout.createTaskIterator(context);
                Task nextTask = itr.next();
                try {
                        nextTask.run(parentTaskMonitor);

Modified: 
csplugins/trunk/toronto/jm/cy3-stateless-taskfactory-alt1/impl/psi-mi-impl/impl/src/test/java/org/cytoscape/psi_mi/internal/plugin/PsiMiNetworkViewReaderTest.java
===================================================================
--- 
csplugins/trunk/toronto/jm/cy3-stateless-taskfactory-alt1/impl/psi-mi-impl/impl/src/test/java/org/cytoscape/psi_mi/internal/plugin/PsiMiNetworkViewReaderTest.java
  2012-03-09 21:44:57 UTC (rev 28472)
+++ 
csplugins/trunk/toronto/jm/cy3-stateless-taskfactory-alt1/impl/psi-mi-impl/impl/src/test/java/org/cytoscape/psi_mi/internal/plugin/PsiMiNetworkViewReaderTest.java
  2012-03-09 21:45:31 UTC (rev 28473)
@@ -16,7 +16,7 @@
 import org.cytoscape.psi_mi.internal.plugin.PsiMiCyFileFilter.PSIMIVersion;
 import org.cytoscape.view.layout.CyLayoutAlgorithm;
 import org.cytoscape.view.layout.CyLayoutAlgorithmManager;
-import org.cytoscape.view.model.CyNetworkView;
+import org.cytoscape.view.layout.CyLayoutContext;
 import org.cytoscape.view.model.CyNetworkViewFactory;
 import org.cytoscape.work.Task;
 import org.cytoscape.work.TaskIterator;
@@ -50,7 +50,7 @@
                MockitoAnnotations.initMocks(this);
 
                when(layouts.getDefaultLayout()).thenReturn(layout);
-               when(layout.createTaskIterator(Mockito.any(), 
Mockito.any(CyNetworkView.class))).thenReturn(new TaskIterator(task));
+               
when(layout.createTaskIterator(Mockito.any(CyLayoutContext.class))).thenReturn(new
 TaskIterator(task));
 
                networkFactory = new NetworkTestSupport().getNetworkFactory();
                networkViewFactory = new 
NetworkViewTestSupport().getNetworkViewFactory();

Modified: 
csplugins/trunk/toronto/jm/cy3-stateless-taskfactory-alt1/impl/psi-mi-impl/impl/src/test/java/org/cytoscape/psi_mi/internal/plugin/PsiMiTabReaderTest.java
===================================================================
--- 
csplugins/trunk/toronto/jm/cy3-stateless-taskfactory-alt1/impl/psi-mi-impl/impl/src/test/java/org/cytoscape/psi_mi/internal/plugin/PsiMiTabReaderTest.java
  2012-03-09 21:44:57 UTC (rev 28472)
+++ 
csplugins/trunk/toronto/jm/cy3-stateless-taskfactory-alt1/impl/psi-mi-impl/impl/src/test/java/org/cytoscape/psi_mi/internal/plugin/PsiMiTabReaderTest.java
  2012-03-09 21:45:31 UTC (rev 28473)
@@ -18,7 +18,7 @@
 import org.cytoscape.property.CyProperty;
 import org.cytoscape.view.layout.CyLayoutAlgorithm;
 import org.cytoscape.view.layout.CyLayoutAlgorithmManager;
-import org.cytoscape.view.model.CyNetworkView;
+import org.cytoscape.view.layout.CyLayoutContext;
 import org.cytoscape.view.model.CyNetworkViewFactory;
 import org.cytoscape.work.Task;
 import org.cytoscape.work.TaskIterator;
@@ -53,7 +53,7 @@
 
                when(layouts.getDefaultLayout()).thenReturn(
                                layout);
-               when(layout.createTaskIterator(Mockito.any(), 
Mockito.any(CyNetworkView.class))).thenReturn(new TaskIterator(task));
+               
when(layout.createTaskIterator(Mockito.any(CyLayoutContext.class))).thenReturn(new
 TaskIterator(task));
                
                networkFactory = new NetworkTestSupport().getNetworkFactory();
                networkViewFactory = new 
NetworkViewTestSupport().getNetworkViewFactory();

Modified: 
csplugins/trunk/toronto/jm/cy3-stateless-taskfactory-alt1/impl/psi-mi-impl/performance/src/main/java/org/cytoscape/psi_mi/internal/PerfTest.java
===================================================================
--- 
csplugins/trunk/toronto/jm/cy3-stateless-taskfactory-alt1/impl/psi-mi-impl/performance/src/main/java/org/cytoscape/psi_mi/internal/PerfTest.java
    2012-03-09 21:44:57 UTC (rev 28472)
+++ 
csplugins/trunk/toronto/jm/cy3-stateless-taskfactory-alt1/impl/psi-mi-impl/performance/src/main/java/org/cytoscape/psi_mi/internal/PerfTest.java
    2012-03-09 21:45:31 UTC (rev 28473)
@@ -20,7 +20,7 @@
 import org.cytoscape.psi_mi.internal.plugin.PsiMiTabReader;
 import org.cytoscape.view.layout.CyLayoutAlgorithm;
 import org.cytoscape.view.layout.CyLayoutAlgorithmManager;
-import org.cytoscape.view.model.CyNetworkView;
+import org.cytoscape.view.layout.CyLayoutContext;
 import org.cytoscape.view.model.CyNetworkViewFactory;
 import org.cytoscape.work.AbstractTask;
 import org.cytoscape.work.TaskIterator;
@@ -47,7 +47,7 @@
 
        public PerfTest() {
         layout = mock(CyLayoutAlgorithm.class);
-        when(layout.createTaskIterator(Mockito.any(), 
Mockito.any(CyNetworkView.class))).thenReturn(new TaskIterator(new 
SimpleTask()));
+        
when(layout.createTaskIterator(Mockito.any(CyLayoutContext.class))).thenReturn(new
 TaskIterator(new SimpleTask()));
 
         layouts = mock(CyLayoutAlgorithmManager.class);
         when(layouts.getLayout(anyString())).thenReturn(layout);

Modified: 
csplugins/trunk/toronto/jm/cy3-stateless-taskfactory-alt1/impl/swing-application-impl/src/main/java/org/cytoscape/internal/layout/ui/LayoutMenuPopulator.java
===================================================================
--- 
csplugins/trunk/toronto/jm/cy3-stateless-taskfactory-alt1/impl/swing-application-impl/src/main/java/org/cytoscape/internal/layout/ui/LayoutMenuPopulator.java
       2012-03-09 21:44:57 UTC (rev 28472)
+++ 
csplugins/trunk/toronto/jm/cy3-stateless-taskfactory-alt1/impl/swing-application-impl/src/main/java/org/cytoscape/internal/layout/ui/LayoutMenuPopulator.java
       2012-03-09 21:45:31 UTC (rev 28473)
@@ -54,6 +54,7 @@
 import org.cytoscape.view.layout.AbstractLayoutAlgorithm;
 import org.cytoscape.view.layout.AbstractLayoutAlgorithmContext;
 import org.cytoscape.view.layout.CyLayoutAlgorithm;
+import org.cytoscape.view.layout.CyLayoutContext;
 import org.cytoscape.view.model.CyNetworkView;
 import org.cytoscape.work.TaskFactory;
 import org.cytoscape.work.TaskIterator;
@@ -100,7 +101,7 @@
                //       Implementors of CyLayoutAlgorithm would need to mimic 
that
                //       somehow if they choose to implement from scratch.
                UndoSupportTaskFactory<T> taskFactory = new 
UndoSupportTaskFactory<T>((AbstractLayoutAlgorithm<T>) layout, undo, 
eventHelper);
-               T context = taskFactory.createTunableContext();
+               T context = taskFactory.createLayoutContext();
                TaskFactory provisioner = 
factoryProvisioner.createFor(wrapWithContext(taskFactory, context));
                // get the submenu listener from the task manager
                DynamicSubmenuListener submenu = 
tm.getConfiguration(provisioner, context);
@@ -121,16 +122,18 @@
                listenerMap.put(layout,ml);
        }
 
-       private <T> NetworkViewTaskFactory wrapWithContext(final 
CyLayoutAlgorithm<T> layout, final T tunableContext) {
+       private <T extends CyLayoutContext> NetworkViewTaskFactory 
wrapWithContext(final CyLayoutAlgorithm<T> layout, final T tunableContext) {
                return new NetworkViewTaskFactory() {
                        @Override
                        public boolean isReady(CyNetworkView networkView) {
-                               return layout.isReady(tunableContext, 
networkView);
+                               tunableContext.setNetworkView(networkView);
+                               return layout.isReady(tunableContext);
                        }
                        
                        @Override
                        public TaskIterator createTaskIterator(CyNetworkView 
networkView) {
-                               return 
layout.createTaskIterator(tunableContext, networkView);
+                               tunableContext.setNetworkView(networkView);
+                               return 
layout.createTaskIterator(tunableContext);
                        }
                };
        }

Modified: 
csplugins/trunk/toronto/jm/cy3-stateless-taskfactory-alt1/impl/swing-application-impl/src/main/java/org/cytoscape/internal/layout/ui/LayoutSettingsDialog.java
===================================================================
--- 
csplugins/trunk/toronto/jm/cy3-stateless-taskfactory-alt1/impl/swing-application-impl/src/main/java/org/cytoscape/internal/layout/ui/LayoutSettingsDialog.java
      2012-03-09 21:44:57 UTC (rev 28472)
+++ 
csplugins/trunk/toronto/jm/cy3-stateless-taskfactory-alt1/impl/swing-application-impl/src/main/java/org/cytoscape/internal/layout/ui/LayoutSettingsDialog.java
      2012-03-09 21:45:31 UTC (rev 28473)
@@ -58,6 +58,7 @@
 import org.cytoscape.task.TaskFactoryProvisioner;
 import org.cytoscape.view.layout.CyLayoutAlgorithm;
 import org.cytoscape.view.layout.CyLayoutAlgorithmManager;
+import org.cytoscape.view.layout.CyLayoutContext;
 import org.cytoscape.view.model.CyNetworkView;
 import org.cytoscape.work.TaskFactory;
 import org.cytoscape.work.TaskIterator;
@@ -358,7 +359,7 @@
                        // if it's a string, that means it's the instructions
                        if (!(o instanceof String)) {
                                final CyLayoutAlgorithm newLayout = 
(CyLayoutAlgorithm)o;
-                               Object context = 
newLayout.createTunableContext();
+                               CyLayoutContext context = 
newLayout.createLayoutContext();
                                TaskFactory provisioner = 
factoryProvisioner.createFor(wrapWithContext(newLayout, context));
                                if (!provisioner.isReady()) {
                                        throw new 
IllegalArgumentException("Layout is not fully configured");
@@ -380,16 +381,18 @@
                }
        }
 
-       private <T> NetworkViewTaskFactory wrapWithContext(final 
CyLayoutAlgorithm<T> layout, final T tunableContext) {
+       private <T extends CyLayoutContext> NetworkViewTaskFactory 
wrapWithContext(final CyLayoutAlgorithm<T> layout, final T tunableContext) {
                return new NetworkViewTaskFactory() {
                        @Override
                        public boolean isReady(CyNetworkView networkView) {
-                               return layout.isReady(tunableContext, 
networkView);
+                               tunableContext.setNetworkView(networkView);
+                               return layout.isReady(tunableContext);
                        }
                        
                        @Override
                        public TaskIterator createTaskIterator(CyNetworkView 
networkView) {
-                               return 
layout.createTaskIterator(tunableContext, networkView);
+                               tunableContext.setNetworkView(networkView);
+                               return 
layout.createTaskIterator(tunableContext);
                        }
                };
        }

Modified: 
csplugins/trunk/toronto/jm/cy3-stateless-taskfactory-alt1/impl/swing-application-impl/src/main/java/org/cytoscape/internal/layout/ui/UndoSupportTaskFactory.java
===================================================================
--- 
csplugins/trunk/toronto/jm/cy3-stateless-taskfactory-alt1/impl/swing-application-impl/src/main/java/org/cytoscape/internal/layout/ui/UndoSupportTaskFactory.java
    2012-03-09 21:44:57 UTC (rev 28472)
+++ 
csplugins/trunk/toronto/jm/cy3-stateless-taskfactory-alt1/impl/swing-application-impl/src/main/java/org/cytoscape/internal/layout/ui/UndoSupportTaskFactory.java
    2012-03-09 21:45:31 UTC (rev 28473)
@@ -26,7 +26,7 @@
        @Override
        public TaskIterator createTaskIterator(T tunableContext) {
                CyNetworkView networkView = tunableContext.getNetworkView();
-               TaskIterator source = 
delegate.createTaskIterator(tunableContext, networkView);
+               TaskIterator source = 
delegate.createTaskIterator(tunableContext);
                Task[] tasks = new Task[source.getNumTasks() + 1];
                tasks[0] = new UndoSupportTask(name, undo, eventHelper, 
networkView);
                for (int i = 1; i < tasks.length; i++) {
@@ -35,12 +35,13 @@
                return new TaskIterator(tasks.length, tasks);
        }
        
-       public boolean isReady(T tunableContext, CyNetworkView networkView) {
-               return delegate.isReady(tunableContext, networkView);
+       @Override
+       public boolean isReady(T tunableContext) {
+               return delegate.isReady(tunableContext);
        }
        
        @Override
-       public T createTunableContext() {
-               return delegate.createTunableContext();
+       public T createLayoutContext() {
+               return delegate.createLayoutContext();
        }
 }

-- 
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