Author: kono
Date: 2009-12-01 16:08:26 -0800 (Tue, 01 Dec 2009)
New Revision: 18634

Added:
   cytoscape/trunk/src/cytoscape/util/NestedNetworkViewUpdater.java
Removed:
   cytoscape/trunk/src/cytoscape/util/NestedNetworkImageManager.java
Modified:
   cytoscape/trunk/src/cytoscape/Cytoscape.java
   cytoscape/trunk/src/cytoscape/CytoscapeInit.java
Log:
NestedNetworkViewUpdater added and it updates nested network images correctly.

Modified: cytoscape/trunk/src/cytoscape/Cytoscape.java
===================================================================
--- cytoscape/trunk/src/cytoscape/Cytoscape.java        2009-12-01 22:24:53 UTC 
(rev 18633)
+++ cytoscape/trunk/src/cytoscape/Cytoscape.java        2009-12-02 00:08:26 UTC 
(rev 18634)
@@ -1702,7 +1702,9 @@
         * @param vs the VisualStyle in which to render this new network. If 
null,
         *           the default visual style will be used.
         */
-       public static CyNetworkView createNetworkView(CyNetwork network, String 
title, CyLayoutAlgorithm layout, VisualStyle vs) {
+       public static CyNetworkView createNetworkView(CyNetwork network, String 
title, CyLayoutAlgorithm layout, VisualStyle vs) {      
+               Thread.dumpStack();
+               
                if (network == nullNetwork) {
                        return nullNetworkView;
                }
@@ -1712,14 +1714,14 @@
                }
 
                final DingNetworkView view = new DingNetworkView(network, 
title);
-               for (final NodeView nv: 
(List<NodeView>)view.getNodeViewsList()) {
-                       final GraphPerspective nestedNetwork = 
nv.getNode().getNestedNetwork();
-                       if (nestedNetwork != null) {
-                               final CyNetworkView nestedNetworkView = 
Cytoscape.getNetworkView(((CyNetwork)nestedNetwork).getIdentifier());
-                               if 
(!nestedNetworkView.equals(Cytoscape.getNullNetworkView()))
-                                       
((DNodeView)nv).setNestedNetworkView((DGraphView) nestedNetworkView);
-                       }
-               }
+//             for (final NodeView nv: 
(List<NodeView>)view.getNodeViewsList()) {
+//                     final GraphPerspective nestedNetwork = 
nv.getNode().getNestedNetwork();
+//                     if (nestedNetwork != null) {
+//                             final CyNetworkView nestedNetworkView = 
Cytoscape.getNetworkView(((CyNetwork)nestedNetwork).getIdentifier());
+//                             if 
(!nestedNetworkView.equals(Cytoscape.getNullNetworkView()))
+//                                     
((DNodeView)nv).setNestedNetworkView((DGraphView) nestedNetworkView);
+//                     }
+//             }
                
                view.setGraphLOD(new CyGraphLOD());
                view.setIdentifier(network.getIdentifier());
@@ -1743,7 +1745,7 @@
 
                view.fitContent();
                view.redrawGraph(false, true);
-
+               
                return view;
        }
 

Modified: cytoscape/trunk/src/cytoscape/CytoscapeInit.java
===================================================================
--- cytoscape/trunk/src/cytoscape/CytoscapeInit.java    2009-12-01 22:24:53 UTC 
(rev 18633)
+++ cytoscape/trunk/src/cytoscape/CytoscapeInit.java    2009-12-02 00:08:26 UTC 
(rev 18634)
@@ -49,7 +49,7 @@
 import cytoscape.plugin.PluginManager;
 
 import cytoscape.util.FileUtil;
-import cytoscape.util.NestedNetworkImageManager;
+import cytoscape.util.NestedNetworkViewUpdater;
 
 import cytoscape.util.shadegrown.WindowUtilities;
 
@@ -112,6 +112,7 @@
        private static Properties properties;
        private static Properties visualProperties;
        private static CyLogger logger = null;
+       private static NestedNetworkViewUpdater nestedNetworkViewUpdater;
 
        static {
                logger = CyLogger.getLogger(CytoscapeInit.class);
@@ -160,6 +161,9 @@
 
                        // Build the OntologyServer.
                        Cytoscape.buildOntologyServer();
+                       
+                       // Instantiate a NestedNetworkViewUpdater
+                       nestedNetworkViewUpdater = new 
NestedNetworkViewUpdater();
 
                        // get the manager so it can test for webstart before 
menus are
                        // created (little hacky)

Deleted: cytoscape/trunk/src/cytoscape/util/NestedNetworkImageManager.java
===================================================================
--- cytoscape/trunk/src/cytoscape/util/NestedNetworkImageManager.java   
2009-12-01 22:24:53 UTC (rev 18633)
+++ cytoscape/trunk/src/cytoscape/util/NestedNetworkImageManager.java   
2009-12-02 00:08:26 UTC (rev 18634)
@@ -1,28 +0,0 @@
-package cytoscape.util;
-
-import java.beans.PropertyChangeEvent;
-import java.beans.PropertyChangeListener;
-import java.io.IOException;
-
-import cytoscape.Cytoscape;
-
-
-/** This class manages images that represent nested networks.  This 
"management" includes creation, updating and destruction of such images as well
- *  as updating network views when any of their nodes nested networks have 
changed.
- */
-public class NestedNetworkImageManager implements PropertyChangeListener {
-
-       private NestedNetworkImageManager() throws IOException {
-               
Cytoscape.getPropertyChangeSupport().addPropertyChangeListener(this);
-       }
-
-       public void propertyChange(final PropertyChangeEvent evt) {             
-               if 
(evt.getPropertyName().equals(Cytoscape.NESTED_NETWORK_CREATED)) {
-                       
-               } else if 
(evt.getPropertyName().equals(Cytoscape.NESTED_NETWORK_DESTROYED)) {
-                       
-               } else if 
(Cytoscape.NETWORK_MODIFIED.equals(evt.getPropertyName())) {
-
-               }
-       }
-}

Copied: cytoscape/trunk/src/cytoscape/util/NestedNetworkViewUpdater.java (from 
rev 18622, cytoscape/trunk/src/cytoscape/util/NestedNetworkImageManager.java)
===================================================================
--- cytoscape/trunk/src/cytoscape/util/NestedNetworkViewUpdater.java            
                (rev 0)
+++ cytoscape/trunk/src/cytoscape/util/NestedNetworkViewUpdater.java    
2009-12-02 00:08:26 UTC (rev 18634)
@@ -0,0 +1,53 @@
+package cytoscape.util;
+
+import giny.view.NodeView;
+
+import java.beans.PropertyChangeEvent;
+import java.beans.PropertyChangeListener;
+import java.util.Collection;
+import java.util.List;
+
+import cytoscape.CyNetwork;
+import cytoscape.CyNode;
+import cytoscape.Cytoscape;
+import cytoscape.view.CyNetworkView;
+import cytoscape.view.CytoscapeDesktop;
+import ding.view.DGraphView;
+import ding.view.DNodeView;
+
+
+/** This class manages images that represent nested networks.  This 
"management" includes creation, updating and destruction of such images as well
+ *  as updating network views when any of their nodes nested networks have 
changed.
+ */
+public class NestedNetworkViewUpdater implements PropertyChangeListener {
+
+       public NestedNetworkViewUpdater() {
+               
Cytoscape.getSwingPropertyChangeSupport().addPropertyChangeListener(this);
+       }
+
+       public void propertyChange(final PropertyChangeEvent evt) {             
+               if 
(evt.getPropertyName().equals(CytoscapeDesktop.NETWORK_VIEW_CREATED) ||
+                               
evt.getPropertyName().equals(CytoscapeDesktop.NETWORK_VIEW_DESTROYED)) {
+                       
+                       final boolean created = 
evt.getPropertyName().equals(CytoscapeDesktop.NETWORK_VIEW_CREATED);
+                       final CyNetworkView view = (CyNetworkView) 
evt.getNewValue();
+                       final List<String> parents = 
Cytoscape.getNetworkAttributes().getListAttribute(view.getNetwork().getIdentifier(),
 CyNode.PARENT_NODES_ATTR);
+                       if (parents.isEmpty()) {
+                               return;  // Not a nested network.
+                       }
+                       
+                       // First, grab all the available network views.
+                       final Collection<CyNetworkView> networkViews = 
Cytoscape.getNetworkViewMap().values();
+                       for (final CyNetworkView networkView: networkViews) {
+                               for (final String parentNode: parents) {
+                                       // If this view contains a parentNode, 
then update its nested network view.
+                                       final NodeView nodeView = 
networkView.getNodeView(Cytoscape.getCyNode(parentNode));
+                                       if (nodeView != null) {
+                                               
((DNodeView)nodeView).setNestedNetworkView((DGraphView) 
Cytoscape.getNetworkView(
+                                                               created ? 
((CyNetwork)nodeView.getNode().getNestedNetwork()).getIdentifier() : null));
+                                       }
+                               }
+                       }
+               }
+       }
+}

--

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