Author: jm
Date: 2012-02-14 12:13:46 -0800 (Tue, 14 Feb 2012)
New Revision: 28267

Added:
   
csplugins/trunk/toronto/jm/cy3-stateless-taskfactory/impl/layout-prefuse-impl/src/main/java/org/cytoscape/prefuse/layouts/internal/ForceDirectedLayoutContext.java
Modified:
   
csplugins/trunk/toronto/jm/cy3-stateless-taskfactory/impl/layout-jgraph-impl/src/main/java/csapps/layout/JGraphLayoutWrapper.java
   
csplugins/trunk/toronto/jm/cy3-stateless-taskfactory/impl/layout-prefuse-impl/src/main/java/org/cytoscape/prefuse/layouts/internal/ForceDirectedLayout.java
Log:
Refactored remaining layouts

Modified: 
csplugins/trunk/toronto/jm/cy3-stateless-taskfactory/impl/layout-jgraph-impl/src/main/java/csapps/layout/JGraphLayoutWrapper.java
===================================================================
--- 
csplugins/trunk/toronto/jm/cy3-stateless-taskfactory/impl/layout-jgraph-impl/src/main/java/csapps/layout/JGraphLayoutWrapper.java
   2012-02-14 20:04:18 UTC (rev 28266)
+++ 
csplugins/trunk/toronto/jm/cy3-stateless-taskfactory/impl/layout-jgraph-impl/src/main/java/csapps/layout/JGraphLayoutWrapper.java
   2012-02-14 20:13:46 UTC (rev 28267)
@@ -2,11 +2,10 @@
 
 
 import org.cytoscape.view.layout.AbstractLayoutAlgorithm;
+import org.cytoscape.view.layout.LayoutContext;
+import org.cytoscape.view.layout.LayoutContextImpl;
 import org.cytoscape.work.TaskIterator;
-import org.cytoscape.work.TunableValidator;
-import org.cytoscape.work.TunableValidator.ValidationState;
 import org.cytoscape.work.undo.UndoSupport;
-
 import org.jgraph.plugins.layouts.AnnealingLayoutAlgorithm;
 import org.jgraph.plugins.layouts.CircleGraphLayout;
 import org.jgraph.plugins.layouts.GEMLayoutAlgorithm;
@@ -19,7 +18,7 @@
 import org.jgraph.plugins.layouts.TreeLayoutAlgorithm;
 
 
-public class JGraphLayoutWrapper extends AbstractLayoutAlgorithm implements 
TunableValidator {
+public class JGraphLayoutWrapper extends 
AbstractLayoutAlgorithm<LayoutContext> {
        public static final int ANNEALING = 0;
        public static final int MOEN = 1;
        public static final int CIRCLE_GRAPH = 2;
@@ -87,14 +86,13 @@
                layoutSettings = layout.createSettings();
        }
 
-       @Override //TODO how to validate the parameter values?
-       public ValidationState getValidationState(final Appendable errMsg) {    
        
-               return ValidationState.OK;
+       @Override
+       public LayoutContext createTaskContext() {
+               return new LayoutContextImpl(supportsSelectedOnly(), 
supportsNodeAttributes(), supportsEdgeAttributes());
        }
-
-       public TaskIterator createTaskIterator() {
-               
-               return new TaskIterator(new 
JGraphLayoutWrapperTask(networkView, getName(), selectedOnly, staticNodes,
+       
+       public TaskIterator createTaskIterator(LayoutContext context) {
+               return new TaskIterator(new 
JGraphLayoutWrapperTask(context.getNetworkView(), getName(), 
context.getSelectedOnly(), context.getStaticNodes(),
                                layout, layoutSettings));
        }
 

Modified: 
csplugins/trunk/toronto/jm/cy3-stateless-taskfactory/impl/layout-prefuse-impl/src/main/java/org/cytoscape/prefuse/layouts/internal/ForceDirectedLayout.java
===================================================================
--- 
csplugins/trunk/toronto/jm/cy3-stateless-taskfactory/impl/layout-prefuse-impl/src/main/java/org/cytoscape/prefuse/layouts/internal/ForceDirectedLayout.java
 2012-02-14 20:04:18 UTC (rev 28266)
+++ 
csplugins/trunk/toronto/jm/cy3-stateless-taskfactory/impl/layout-prefuse-impl/src/main/java/org/cytoscape/prefuse/layouts/internal/ForceDirectedLayout.java
 2012-02-14 20:13:46 UTC (rev 28267)
@@ -1,35 +1,16 @@
 package org.cytoscape.prefuse.layouts.internal;
 
 
-import java.io.IOException;
-
-import org.cytoscape.view.layout.AbstractEdgeWeightedLayoutAlgorithm;
-import org.cytoscape.view.layout.CyLayoutAlgorithmManager;
+import org.cytoscape.view.layout.AbstractLayoutAlgorithm;
 import org.cytoscape.work.TaskIterator;
-import org.cytoscape.work.Tunable;
-import org.cytoscape.work.TunableValidator;
-import org.cytoscape.work.TunableValidator.ValidationState;
 import org.cytoscape.work.undo.UndoSupport;
-import org.cytoscape.work.util.ListSingleSelection;
 
 import prefuse.util.force.EulerIntegrator;
-import prefuse.util.force.RungeKuttaIntegrator;
 import prefuse.util.force.Integrator;
-import org.cytoscape.work.util.ListSingleSelection;
+import prefuse.util.force.RungeKuttaIntegrator;
 
 
-public class ForceDirectedLayout extends AbstractEdgeWeightedLayoutAlgorithm 
implements TunableValidator {
-       @Tunable(description="Number of Iterations")
-       public int numIterations = 100;
-       @Tunable(description="Default Spring Coefficient")
-       public double defaultSpringCoefficient = 1e-4;
-       @Tunable(description="Default Spring Length")
-       public double defaultSpringLength = 50.0;
-       @Tunable(description="Default Node Mass")
-       public double defaultNodeMass = 3.0;
-       @Tunable(description="Don't partition graph before layout", 
groups="Standard settings")
-       public boolean singlePartition;
-
+public class ForceDirectedLayout extends 
AbstractLayoutAlgorithm<ForceDirectedLayoutContext> {
        private Integrators integrator = Integrators.RUNGEKUTTA;
        
        public enum Integrators {
@@ -56,25 +37,15 @@
        }
 
        @Override
-       public ValidationState getValidationState(final Appendable errMsg) {
-               return isPositive(numIterations) && 
isPositive(defaultSpringCoefficient)
-                      && isPositive(defaultSpringLength) && 
isPositive(defaultNodeMass)
-                       ? ValidationState.OK : ValidationState.INVALID;
+       public ForceDirectedLayoutContext createTaskContext() {
+               return new ForceDirectedLayoutContext(supportsSelectedOnly(), 
supportsNodeAttributes(), supportsEdgeAttributes());
        }
-
-       private static boolean isPositive(final int n) {
-               return n > 0;
-       }
-
-       private static boolean isPositive(final double n) {
-               return n > 0.0;
-       }
-
-       public TaskIterator createTaskIterator() {
+       
+       public TaskIterator createTaskIterator(ForceDirectedLayoutContext 
context) {
                return new TaskIterator(
-                       new ForceDirectedLayoutTask(networkView, getName(), 
selectedOnly, staticNodes,
-                                                   numIterations, 
defaultSpringCoefficient,
-                                                   defaultSpringLength, 
defaultNodeMass, integrator,
-                                                   singlePartition));
+                       new ForceDirectedLayoutTask(context.getNetworkView(), 
getName(), context.getSelectedOnly(), context.getStaticNodes(),
+                                                   context.numIterations, 
context.defaultSpringCoefficient,
+                                                   
context.defaultSpringLength, context.defaultNodeMass, integrator,
+                                                   context.singlePartition));
        }
 }

Added: 
csplugins/trunk/toronto/jm/cy3-stateless-taskfactory/impl/layout-prefuse-impl/src/main/java/org/cytoscape/prefuse/layouts/internal/ForceDirectedLayoutContext.java
===================================================================
--- 
csplugins/trunk/toronto/jm/cy3-stateless-taskfactory/impl/layout-prefuse-impl/src/main/java/org/cytoscape/prefuse/layouts/internal/ForceDirectedLayoutContext.java
                          (rev 0)
+++ 
csplugins/trunk/toronto/jm/cy3-stateless-taskfactory/impl/layout-prefuse-impl/src/main/java/org/cytoscape/prefuse/layouts/internal/ForceDirectedLayoutContext.java
  2012-02-14 20:13:46 UTC (rev 28267)
@@ -0,0 +1,41 @@
+package org.cytoscape.prefuse.layouts.internal;
+
+import java.util.Set;
+
+import org.cytoscape.view.layout.EdgeWeightedLayoutTaskContext;
+import org.cytoscape.work.Tunable;
+import org.cytoscape.work.TunableValidator;
+
+public class ForceDirectedLayoutContext extends EdgeWeightedLayoutTaskContext 
implements TunableValidator{
+       @Tunable(description="Number of Iterations")
+       public int numIterations = 100;
+       @Tunable(description="Default Spring Coefficient")
+       public double defaultSpringCoefficient = 1e-4;
+       @Tunable(description="Default Spring Length")
+       public double defaultSpringLength = 50.0;
+       @Tunable(description="Default Node Mass")
+       public double defaultNodeMass = 3.0;
+       @Tunable(description="Don't partition graph before layout", 
groups="Standard settings")
+       public boolean singlePartition;
+
+       public ForceDirectedLayoutContext(boolean supportsSelectedOnly,
+                       Set<Class<?>> supportedNodeAttrTypes,
+                       Set<Class<?>> supportedEdgeAttrTypes) {
+               super(supportsSelectedOnly, supportedNodeAttrTypes, 
supportedEdgeAttrTypes);
+       }
+
+       @Override
+       public ValidationState getValidationState(final Appendable errMsg) {
+               return isPositive(numIterations) && 
isPositive(defaultSpringCoefficient)
+                      && isPositive(defaultSpringLength) && 
isPositive(defaultNodeMass)
+                       ? ValidationState.OK : ValidationState.INVALID;
+       }
+
+       private static boolean isPositive(final int n) {
+               return n > 0;
+       }
+
+       private static boolean isPositive(final double n) {
+               return n > 0.0;
+       }
+}

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