Author: pwang
Date: 2011-10-28 14:35:06 -0700 (Fri, 28 Oct 2011)
New Revision: 27331
Modified:
csplugins/trunk/ucsd/ruschein/PanGIA-impl/src/main/java/org/idekerlab/PanGIAPlugin/DetailedViewLayout.java
Log:
Refactored to work with Cy3
Modified:
csplugins/trunk/ucsd/ruschein/PanGIA-impl/src/main/java/org/idekerlab/PanGIAPlugin/DetailedViewLayout.java
===================================================================
---
csplugins/trunk/ucsd/ruschein/PanGIA-impl/src/main/java/org/idekerlab/PanGIAPlugin/DetailedViewLayout.java
2011-10-28 19:45:18 UTC (rev 27330)
+++
csplugins/trunk/ucsd/ruschein/PanGIA-impl/src/main/java/org/idekerlab/PanGIAPlugin/DetailedViewLayout.java
2011-10-28 21:35:06 UTC (rev 27331)
@@ -1,7 +1,9 @@
package org.idekerlab.PanGIAPlugin;
-import giny.model.Node;
-import giny.view.NodeView;
+import org.cytoscape.model.CyNetwork;
+import org.cytoscape.model.CyNode;
+import org.cytoscape.model.CyTableUtil;
+import org.cytoscape.view.model.View;
import java.util.ArrayList;
import java.util.HashMap;
@@ -13,11 +15,11 @@
import org.idekerlab.PanGIAPlugin.data.DoubleVector;
-import cytoscape.Cytoscape;
-import cytoscape.data.CyAttributes;
-import cytoscape.layout.CyLayoutAlgorithm;
-import cytoscape.layout.CyLayouts;
-import cytoscape.view.CyNetworkView;
+import org.cytoscape.model.CyTable;
+import org.cytoscape.view.layout.CyLayoutAlgorithm;
+import org.cytoscape.view.model.CyNetworkView;
+import org.cytoscape.view.presentation.property.MinimalVisualLexicon;
+import java.util.Iterator;
public class DetailedViewLayout
{
@@ -36,42 +38,72 @@
view.redrawGraph(true, true);
*/
//Get values of Parent Module attribute
- CyAttributes nodeAttr = Cytoscape.getNodeAttributes();
- Map<String,Set<Node>> module_nodes = new
HashMap<String,Set<Node>>();
- for (int ni : view.getNetwork().getNodeIndicesArray())
- {
- String nodeID =
view.getNetwork().getNode(ni).getIdentifier();
- String parent = nodeAttr.getAttribute(nodeID,
VisualStyleObserver.PARENT_MODULE_ATTRIBUTE_NAME).toString();
-
- Set<Node> sset = module_nodes.get(parent);
+ CyTable nodeAttr = view.getModel().getDefaultNodeTable();
//Cytoscape.getNodeAttributes();
+ Map<String,Set<CyNode>> module_nodes = new
HashMap<String,Set<CyNode>>();
+
+ Iterator<CyNode> nodeIt =
view.getModel().getNodeList().iterator();
+ while (nodeIt.hasNext()){
+ CyNode node = nodeIt.next();
+
+ String nodeID = node.getCyRow().get("name",
String.class);
+ //String parent = nodeAttr.getAttribute(nodeID,
VisualStyleObserver.PARENT_MODULE_ATTRIBUTE_NAME).toString();
+ String parent =
node.getCyRow().get(VisualStyleObserver.PARENT_MODULE_ATTRIBUTE_NAME,
String.class);
+
+ Set<CyNode> sset = module_nodes.get(parent);
if (sset==null)
{
- sset = new HashSet<Node>();
- sset.add(view.getNetwork().getNode(ni));
+ sset = new HashSet<CyNode>();
+ //sset.add(view.getModel().getNode(ni));
+ sset.add(node);
+
module_nodes.put(parent, sset);
- }else sset.add(view.getNetwork().getNode(ni));
+ }
+ else
+ {
+ //sset.add(view.getModel().getNode(ni));
+ sset.add(node);
+ }
}
+
//For each parent module
- CyLayoutAlgorithm fd = CyLayouts.getLayout("force-directed");
+ CyLayoutAlgorithm fd =
ServicesUtil.cyLayoutsServiceRef.getLayout("force-directed");
fd.setSelectedOnly(true);
- for (Entry<String,Set<Node>> e : module_nodes.entrySet())
+ for (Entry<String,Set<CyNode>> e : module_nodes.entrySet())
{
//Select all nodes with this attribute value
- view.getNetwork().unselectAllNodes();
- view.getNetwork().setSelectedNodeState(e.getValue(),
true);
+ //view.getModel().unselectAllNodes();
+ Iterator<CyNode> it =
view.getModel().getNodeList().iterator();
+ while (it.hasNext()){
+ it.next().getCyRow().set(CyNetwork.SELECTED,
false);
+ }
+ //view.getModel().setSelectedNodeState(e.getValue(),
true);
+ Set<CyNode> nodeSet = e.getValue();
+ Iterator<CyNode> nodeSetIt= nodeSet.iterator();
+ while (nodeSetIt.hasNext()){
+
nodeSetIt.next().getCyRow().set(CyNetwork.SELECTED, true);
+ }
+
//Perform force-directed layout of just the selected
- fd.getSettings().updateValues();
- fd.updateSettings();
- view.applyLayout(fd);
+ //fd.getSettings().updateValues();
+ //fd.updateSettings();
- view.redrawGraph(true, true);
+ fd.setNetworkView(view);
+ ServicesUtil.taskManagerServiceRef.execute(fd);
+
+ view.updateView();
}
fd.setSelectedOnly(false);
- view.getNetwork().unselectAllNodes();
+ //view.getModel().unselectAllNodes();
+ Iterator<CyNode> it = view.getModel().getNodeList().iterator();
+ while (it.hasNext()){
+ it.next().getCyRow().set(CyNetwork.SELECTED, false);
+ }
+
+
//Get the meanPosition and radius of each group
List<String> moduleList = new
ArrayList<String>(module_nodes.keySet());
double[] centerX = new double[moduleList.size()];
@@ -80,7 +112,7 @@
for (int i=0;i<moduleList.size();i++)
{
- Set<Node> nodes = module_nodes.get(moduleList.get(i));
+ Set<CyNode> nodes = module_nodes.get(moduleList.get(i));
if (nodes.size()<=1)
{
@@ -93,11 +125,11 @@
double minY = Double.MAX_VALUE;
double maxY = Double.MIN_VALUE;
- for (Node n : nodes)
+ for (CyNode n : nodes)
{
- NodeView nv = view.getNodeView(n);
- double x = nv.getXPosition();
- double y = nv.getYPosition();
+ View<CyNode> nv = view.getNodeView(n);
+ double x =
nv.getVisualProperty(MinimalVisualLexicon.NODE_X_LOCATION);
+ double y=
nv.getVisualProperty(MinimalVisualLexicon.NODE_X_LOCATION);
if (x<minX) minX = x;
else if (x>maxX) maxX = x;
@@ -118,15 +150,17 @@
//Get the map from module to overview node
- Map<String,NodeView> module_overviewNode = new
HashMap<String,NodeView>(module_nodes.size(),1);
+ Map<String,View<CyNode>> module_overviewNode = new
HashMap<String,View<CyNode>>(module_nodes.size(),1);
@SuppressWarnings("rawtypes")
- List overviewNodes = overview.getSelectedNodes();
+ //List overviewNodes = overview.getSelectedNodes();
+ List<CyNode> overviewNodes =
CyTableUtil.getNodesInState(overview.getModel(), "selected", true);
+
for (String mod : module_nodes.keySet())
for (Object n : overviewNodes)
- if
(((NodeView)n).getNode().getIdentifier().equals(mod))
+ if
(((View<CyNode>)n).getModel().getCyRow().get("name", String.class).equals(mod))
{
- module_overviewNode.put(mod,
(NodeView)n);
+ module_overviewNode.put(mod,
(View<CyNode>)n);
break;
}
@@ -152,9 +186,9 @@
for (int i=0;i<radius.length;i++)
{
- NodeView on =
module_overviewNode.get(moduleList.get(i));
- double x = on.getXPosition();
- double y = on.getYPosition();
+ View<CyNode> on =
module_overviewNode.get(moduleList.get(i));
+ double x =
on.getVisualProperty(MinimalVisualLexicon.NODE_X_LOCATION);
+ double y=
on.getVisualProperty(MinimalVisualLexicon.NODE_X_LOCATION);
newCenterX[i] = x;
newCenterY[i] = y;
@@ -222,11 +256,18 @@
for (int i=0;i<radius.length;i++)
{
- for (Node n : module_nodes.get(moduleList.get(i)))
+ for (CyNode n : module_nodes.get(moduleList.get(i)))
{
- NodeView on = view.getNodeView(n);
- on.setXPosition(on.getXPosition()+shiftX[i]);
- on.setYPosition(on.getYPosition()+shiftY[i]);
+ View<CyNode> on = view.getNodeView(n);
+
+ double x =
on.getVisualProperty(MinimalVisualLexicon.NODE_X_LOCATION);
+ double y=
on.getVisualProperty(MinimalVisualLexicon.NODE_X_LOCATION);
+
+ x = x + shiftX[i];
+ y = y+ shiftY[i];
+
+
on.setVisualProperty(MinimalVisualLexicon.NODE_X_LOCATION, x);
+
on.setVisualProperty(MinimalVisualLexicon.NODE_Y_LOCATION, y);
}
}
--
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.