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.