Author: kono
Date: 2009-12-10 16:40:23 -0800 (Thu, 10 Dec 2009)
New Revision: 18728
Modified:
cytoscape/trunk/src/cytoscape/Cytoscape.java
cytoscape/trunk/src/cytoscape/actions/LoadNetworkTask.java
cytoscape/trunk/src/cytoscape/data/readers/XGMMLReader.java
cytoscape/trunk/src/cytoscape/ding/DingNetworkView.java
cytoscape/trunk/src/cytoscape/layout/AbstractLayout.java
cytoscape/trunk/src/cytoscape/visual/ui/DefaultViewPanel.java
Log:
Fixed most of the performance problem related to too many redrawGraph() calls.
Modified: cytoscape/trunk/src/cytoscape/Cytoscape.java
===================================================================
--- cytoscape/trunk/src/cytoscape/Cytoscape.java 2009-12-11 00:37:47 UTC
(rev 18727)
+++ cytoscape/trunk/src/cytoscape/Cytoscape.java 2009-12-11 00:40:23 UTC
(rev 18728)
@@ -820,15 +820,12 @@
/**
* @return a CyNetworkView for the given ID, if one exists, otherwise
- * returns null
+ * returns NullNetworkView
*/
public static CyNetworkView getNetworkView(String network_id) {
if ((network_id == null) ||
!(getNetworkViewMap().containsKey(network_id)))
return nullNetworkView;
-
- CyNetworkView nview = (CyNetworkView)
getNetworkViewMap().get(network_id);
-
- return nview;
+ return (CyNetworkView) getNetworkViewMap().get(network_id);
}
/**
@@ -1713,7 +1710,6 @@
final DingNetworkView view = new DingNetworkView(network,
title);
- view.setGraphLOD(new CyGraphLOD());
view.setIdentifier(network.getIdentifier());
view.setTitle(network.getTitle());
getNetworkViewMap().put(network.getIdentifier(), view);
@@ -1728,13 +1724,16 @@
if (layout == null) {
layout = CyLayouts.getDefaultLayout();
}
+ final VisualMappingManager vmm =
Cytoscape.getVisualMappingManager();
+ vmm.setNetworkView(view);
+ vmm.applyAppearances();
layout.doLayout(view);
-
+ view.setGraphLOD(new CyGraphLOD());
Cytoscape.firePropertyChange(cytoscape.view.CytoscapeDesktop.NETWORK_VIEW_CREATED,
null, view);
-
- view.fitContent();
- view.redrawGraph(false, true);
+ //view.fitContent();
+ //view.redrawGraph(false, true);
+
return view;
}
Modified: cytoscape/trunk/src/cytoscape/actions/LoadNetworkTask.java
===================================================================
--- cytoscape/trunk/src/cytoscape/actions/LoadNetworkTask.java 2009-12-11
00:37:47 UTC (rev 18727)
+++ cytoscape/trunk/src/cytoscape/actions/LoadNetworkTask.java 2009-12-11
00:40:23 UTC (rev 18728)
@@ -241,20 +241,8 @@
taskMonitor.setStatus("Creating Cytoscape Network...");
- CyNetwork cyNetwork = Cytoscape.createNetwork(reader,
true, null);
+ final CyNetwork cyNetwork =
Cytoscape.createNetwork(reader, true, null);
- // Are we supposed to lay this out?
- CyNetworkView view =
Cytoscape.getNetworkView(cyNetwork.getIdentifier());
-
- if ((layoutAlgorithm != null) && (view != null)) {
- // Yes, do it
- // Layouts are, in general cancelable
- ((JTask) taskMonitor).setCancel(true);
- taskMonitor.setStatus("Performing layout...");
- layoutAlgorithm.doLayout(view, taskMonitor);
- taskMonitor.setStatus("Layout complete");
- }
-
Object[] ret_val = new Object[2];
ret_val[0] = cyNetwork;
ret_val[1] = uri;
Modified: cytoscape/trunk/src/cytoscape/data/readers/XGMMLReader.java
===================================================================
--- cytoscape/trunk/src/cytoscape/data/readers/XGMMLReader.java 2009-12-11
00:37:47 UTC (rev 18727)
+++ cytoscape/trunk/src/cytoscape/data/readers/XGMMLReader.java 2009-12-11
00:40:23 UTC (rev 18728)
@@ -664,11 +664,11 @@
*
* @param network DOCUMENT ME!
*/
- public void doPostProcessing(CyNetwork network) {
+ public void doPostProcessing(final CyNetwork network) {
parser.setMetaData(network);
// Get the view. Note that for large networks this might be
the null view
- CyNetworkView view =
Cytoscape.getNetworkView(network.getIdentifier());
+ final CyNetworkView view =
Cytoscape.getNetworkView(network.getIdentifier());
// Now that we have a network, handle the groups
// This is done here rather than in layout because layout is
@@ -713,7 +713,10 @@
if (view == Cytoscape.getNullNetworkView())
return;
-
+
+ // Apply visual style before updateView().
+ Cytoscape.getVisualMappingManager().applyAppearances();
+
// set view zoom
final Double zoomLevel = parser.getGraphViewZoomLevel();
@@ -725,8 +728,6 @@
if (center != null)
((DGraphView) view).setCenter(center.getX(),
center.getY());
-
- Cytoscape.getVisualMappingManager().applyAppearances();
}
Modified: cytoscape/trunk/src/cytoscape/ding/DingNetworkView.java
===================================================================
--- cytoscape/trunk/src/cytoscape/ding/DingNetworkView.java 2009-12-11
00:37:47 UTC (rev 18727)
+++ cytoscape/trunk/src/cytoscape/ding/DingNetworkView.java 2009-12-11
00:40:23 UTC (rev 18728)
@@ -161,6 +161,7 @@
final VisualMappingManager vmm =
Cytoscape.getVisualMappingManager();
vmm.setNetworkView(this);
vmm.applyAppearances();
+ // This simply repaints the canvas.
updateView();
}
Modified: cytoscape/trunk/src/cytoscape/layout/AbstractLayout.java
===================================================================
--- cytoscape/trunk/src/cytoscape/layout/AbstractLayout.java 2009-12-11
00:37:47 UTC (rev 18727)
+++ cytoscape/trunk/src/cytoscape/layout/AbstractLayout.java 2009-12-11
00:40:23 UTC (rev 18728)
@@ -280,14 +280,14 @@
// update the view
if (!selectedOnly)
networkView.fitContent();
+ else
+ networkView.updateView();
- networkView.updateView();
-
// post the edit
undoableEdit.post();
// update the __layoutAlgorithm attribute
- CyAttributes networkAttributes =
Cytoscape.getNetworkAttributes();
+ final CyAttributes networkAttributes =
Cytoscape.getNetworkAttributes();
networkAttributes.setAttribute(network.getIdentifier(),
"__layoutAlgorithm", getName());
networkAttributes.setUserVisible("__layoutAlgorithm", false);
Modified: cytoscape/trunk/src/cytoscape/visual/ui/DefaultViewPanel.java
===================================================================
--- cytoscape/trunk/src/cytoscape/visual/ui/DefaultViewPanel.java
2009-12-11 00:37:47 UTC (rev 18727)
+++ cytoscape/trunk/src/cytoscape/visual/ui/DefaultViewPanel.java
2009-12-11 00:40:23 UTC (rev 18728)
@@ -158,6 +158,7 @@
((DGraphView) view).getCanvas()
.setSize(new Dimension((int) panelSize.getWidth() - PADDING,
(int) panelSize.getHeight() - PADDING));
+ // TODO: This is not always necessary.
view.fitContent();
final Component canvas = view.getComponent();
@@ -169,6 +170,7 @@
this.add(canvas);
canvas.setLocation(PADDING / 2, PADDING / 2);
+
Cytoscape.getVisualMappingManager().applyAppearances();
canvas.setBackground(background);
--
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.