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.