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.


Reply via email to