Author: kono
Date: 2009-11-23 13:53:33 -0800 (Mon, 23 Nov 2009)
New Revision: 18544

Added:
   cytoscape/trunk/tests/cytoscape/util/NestedNetworkImageManagerTest.java
   cytoscape/trunk/tests/cytoscape/util/TestUtil.java
Modified:
   cytoscape/trunk/src/cytoscape/util/NestedNetworkImageManager.java
   cytoscape/trunk/tests/cytoscape/data/readers/NNFReaderTest.java
Log:
Test code for Nested Network Image generator had been added.

Modified: cytoscape/trunk/src/cytoscape/util/NestedNetworkImageManager.java
===================================================================
--- cytoscape/trunk/src/cytoscape/util/NestedNetworkImageManager.java   
2009-11-23 20:17:59 UTC (rev 18543)
+++ cytoscape/trunk/src/cytoscape/util/NestedNetworkImageManager.java   
2009-11-23 21:53:33 UTC (rev 18544)
@@ -22,7 +22,7 @@
        
        private static NestedNetworkImageManager networkImageGenerator;
        
-       private final Map<CyNetwork, Image> networkToImageMap;
+       private final Map<CyNetwork, ImageAndReferenceCount> networkToImageMap;
        
        static {
                networkImageGenerator = new NestedNetworkImageManager();
@@ -34,31 +34,75 @@
        }
 
        private NestedNetworkImageManager() {
-               networkToImageMap = new HashMap<CyNetwork, Image>();
+               networkToImageMap = new HashMap<CyNetwork, 
ImageAndReferenceCount>();
        }
        
        public Image getImage(final CyNetwork network) {
-               return networkToImageMap.get(network);
+               return networkToImageMap.get(network).getImage();
        }
+       
+       public int getImageCount() {
+               return this.networkToImageMap.size();
+       }
 
        public void propertyChange(final PropertyChangeEvent evt) {
+               final CyNetwork network = (CyNetwork) evt.getNewValue();
                if 
(evt.getPropertyName().equals(Cytoscape.NESTED_NETWORK_CREATED)) {
-                       final CyNetwork network = (CyNetwork) evt.getNewValue();
+                       if (this.networkToImageMap.containsKey(network)) {
+                               
this.networkToImageMap.get(network).incRefCount();
+                               return;
+                       }
+                       
                        final CyNetworkView view = 
Cytoscape.getNetworkView(network.getIdentifier());
-                       
                        if (view == Cytoscape.getNullNetworkView()) {
                                // View does not exist
-                               networkToImageMap.put(network, DEF_IMAGE);
+                               networkToImageMap.put(network, new 
ImageAndReferenceCount(DEF_IMAGE));
                        } else {
                                // Create image from this view.
                                final DGraphView dView = (DGraphView) view;
-                               networkToImageMap.put(network, 
dView.createImage(DEF_WIDTH, DEF_HEIGHT, 1.0));
+                               networkToImageMap.put(network, new 
ImageAndReferenceCount(dView.createImage(DEF_WIDTH, DEF_HEIGHT, 1.0)));
                        }
                        
                } else if 
(evt.getPropertyName().equals(Cytoscape.NESTED_NETWORK_DESTROYED)) {
-                       // ?
+                       final ImageAndReferenceCount imageAndRefCount = 
networkToImageMap.get(network);
+                       imageAndRefCount.decRefCount();
+                       if (imageAndRefCount.getRefCount() == 0) {
+                               this.networkToImageMap.remove(network);
+                       }
                }
        }
        
+       
+       static class ImageAndReferenceCount {
+               private Image image;
+               private int refCount;
+               
+               
+               public ImageAndReferenceCount(final Image image) {
+                       this.image = image;
+                       this.refCount = 1;
+               }
+               
+               
+               public void incRefCount() {
+                       this.refCount++;
+               }
+               
+               
+               public void decRefCount() {
+                       this.refCount--;
+               }
+               
+               
+               public int getRefCount() {
+                       return refCount;
+               }
+               
+               
+               public Image getImage() {
+                       return image;
+               }
+       }
+       
 
 }

Modified: cytoscape/trunk/tests/cytoscape/data/readers/NNFReaderTest.java
===================================================================
--- cytoscape/trunk/tests/cytoscape/data/readers/NNFReaderTest.java     
2009-11-23 20:17:59 UTC (rev 18543)
+++ cytoscape/trunk/tests/cytoscape/data/readers/NNFReaderTest.java     
2009-11-23 21:53:33 UTC (rev 18544)
@@ -9,6 +9,7 @@
 import cytoscape.CyNetwork;
 import cytoscape.CyNode;
 import cytoscape.Cytoscape;
+import cytoscape.util.TestUtil;
 
 import junit.framework.TestCase;
 
@@ -35,19 +36,8 @@
        }
 
 
-       /**
-        * Destroys all networks in the root graph.  Please note that the nodes 
and edges of said networks are also being destroyed.
-        */
-       private static void destroyNetworksEdgesAndNodes() {
-               final Set<CyNetwork> networks = Cytoscape.getNetworkSet();
-               for (final CyNetwork network : networks) {
-                       Cytoscape.destroyNetwork(network, /* destroy_unique = 
*/true);
-               }
-       }
-
-
        public void testGood1() throws Exception {
-               destroyNetworksEdgesAndNodes();
+               TestUtil.destroyNetworksEdgesAndNodes();
 
                final NNFReader reader = new NNFReader(FILE_LOCATION + 
"good1.nnf");
                reader.read();
@@ -58,7 +48,7 @@
        
        
        public void testGood2() throws Exception {
-               destroyNetworksEdgesAndNodes();
+               TestUtil.destroyNetworksEdgesAndNodes();
 
                final NNFReader reader = new NNFReader(FILE_LOCATION + 
"good2.nnf");
                reader.read();
@@ -69,7 +59,7 @@
        
        
        public void testGood3() throws Exception {
-               destroyNetworksEdgesAndNodes();
+               TestUtil.destroyNetworksEdgesAndNodes();
 
                final NNFReader reader = new NNFReader(FILE_LOCATION + 
"good3.nnf");
                reader.read();
@@ -94,7 +84,7 @@
        
        
        public void testGood4() throws Exception {
-               destroyNetworksEdgesAndNodes();
+               TestUtil.destroyNetworksEdgesAndNodes();
 
                final NNFReader reader = new NNFReader(FILE_LOCATION + 
"good4.nnf");
                reader.read();
@@ -127,7 +117,7 @@
        
        
        public void testGood5() throws Exception {
-               destroyNetworksEdgesAndNodes();
+               TestUtil.destroyNetworksEdgesAndNodes();
 
                final NNFReader reader = new NNFReader(FILE_LOCATION + 
"good5.nnf");
                reader.read();
@@ -138,7 +128,7 @@
        
        
        public void testGood6() throws Exception {
-               destroyNetworksEdgesAndNodes();
+               TestUtil.destroyNetworksEdgesAndNodes();
 
                final NNFReader reader = new NNFReader(FILE_LOCATION + 
"good6.nnf");
                reader.read();
@@ -149,7 +139,7 @@
        
        
        public void testBad1() throws Exception {
-               destroyNetworksEdgesAndNodes();
+               TestUtil.destroyNetworksEdgesAndNodes();
 
                final NNFReader reader = new NNFReader(FILE_LOCATION + 
"bad1.nnf");
                try {
@@ -166,7 +156,7 @@
        
        
        public void testBad2() throws Exception {
-               destroyNetworksEdgesAndNodes();
+               TestUtil.destroyNetworksEdgesAndNodes();
 
                final NNFReader reader = new NNFReader(FILE_LOCATION + 
"bad2.nnf");
                try {
@@ -182,7 +172,7 @@
        }
 
        public void testMultipleFiles() throws Exception {
-               destroyNetworksEdgesAndNodes();
+               TestUtil.destroyNetworksEdgesAndNodes();
 
                final NNFReader reader1 = new NNFReader(FILE_LOCATION + 
"good3.nnf");
                reader1.read();

Added: cytoscape/trunk/tests/cytoscape/util/NestedNetworkImageManagerTest.java
===================================================================
--- cytoscape/trunk/tests/cytoscape/util/NestedNetworkImageManagerTest.java     
                        (rev 0)
+++ cytoscape/trunk/tests/cytoscape/util/NestedNetworkImageManagerTest.java     
2009-11-23 21:53:33 UTC (rev 18544)
@@ -0,0 +1,29 @@
+package cytoscape.util;
+
+import cytoscape.data.readers.NNFReader;
+import junit.framework.TestCase;
+
+public class NestedNetworkImageManagerTest extends TestCase {
+       
+       private static final String FILE_LOCATION = "testData/NNFData/";
+
+       protected void setUp() throws Exception {
+               super.setUp();
+       }
+
+       protected void tearDown() throws Exception {
+               super.tearDown();
+       }
+       
+       public void testNestedNetworkImageManager() throws Exception {
+               // Load nested network
+               TestUtil.destroyNetworksEdgesAndNodes();
+
+               final NNFReader reader = new NNFReader(FILE_LOCATION + 
"good3.nnf");
+               reader.read();
+               
+               assertEquals(3, 
NestedNetworkImageManager.getNetworkImageGenerator().getImageCount());
+               
+       }
+
+}

Added: cytoscape/trunk/tests/cytoscape/util/TestUtil.java
===================================================================
--- cytoscape/trunk/tests/cytoscape/util/TestUtil.java                          
(rev 0)
+++ cytoscape/trunk/tests/cytoscape/util/TestUtil.java  2009-11-23 21:53:33 UTC 
(rev 18544)
@@ -0,0 +1,20 @@
+package cytoscape.util;
+
+import java.util.Set;
+
+import cytoscape.CyNetwork;
+import cytoscape.Cytoscape;
+
+
+public class TestUtil {
+       /**
+        * Destroys all networks in the root graph.  Please note that the nodes 
and edges of said networks are also being destroyed.
+        */
+       public static void destroyNetworksEdgesAndNodes() {
+               final Set<CyNetwork> networks = Cytoscape.getNetworkSet();
+               for (final CyNetwork network : networks) {
+                       Cytoscape.destroyNetwork(network, /* destroy_unique = 
*/true);
+               }
+       }
+
+}

--

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=.


Reply via email to