Author: kono
Date: 2012-05-04 17:36:53 -0700 (Fri, 04 May 2012)
New Revision: 29126

Modified:
   
core3/api/trunk/layout-api/src/main/java/org/cytoscape/view/layout/LayoutPartition.java
   
core3/api/trunk/session-api/src/main/java/org/cytoscape/session/CySession.java
   
core3/impl/trunk/core-task-impl/src/main/java/org/cytoscape/task/internal/creation/CloneNetworkTask.java
   
core3/impl/trunk/core-task-impl/src/main/java/org/cytoscape/task/internal/creation/CreateNetworkViewEdit.java
   
core3/impl/trunk/cpath2-impl/src/main/java/org/cytoscape/cpath2/internal/cytoscape/MergeNetworkEdit.java
   
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/customgraphicsmgr/internal/ui/CustomGraphicsManagerDialog.java
   
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/AddEdgeStateMonitor.java
   
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/DEdgeDetails.java
   
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/DGraphView.java
   
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/DNodeDetails.java
   
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/ViewState.java
   
core3/impl/trunk/editor-impl/src/main/java/org/cytoscape/editor/internal/ClipboardManagerImpl.java
   
core3/impl/trunk/editor-impl/src/main/java/org/cytoscape/editor/internal/CopyTaskFactory.java
   
core3/impl/trunk/editor-impl/src/main/java/org/cytoscape/editor/internal/CutTaskFactory.java
   
core3/impl/trunk/editor-impl/src/main/java/org/cytoscape/editor/internal/PasteTask.java
   
core3/impl/trunk/filter-impl/src/main/java/org/cytoscape/filter/internal/quickfind/util/QuickFindImpl.java
   
core3/impl/trunk/io-impl/impl/src/main/java/org/cytoscape/io/internal/read/session/AbstractSessionReader.java
   
core3/impl/trunk/io-impl/impl/src/main/java/org/cytoscape/io/internal/util/ReadCache.java
   
core3/impl/trunk/io-impl/impl/src/main/java/org/cytoscape/io/internal/write/xgmml/XGMMLWriter.java
   
core3/impl/trunk/network-analyzer-impl/src/main/java/de/mpg/mpi_inf/bioinf/netanalyzer/DirNetworkAnalyzer.java
   
core3/impl/trunk/network-merge-impl/src/main/java/org/cytoscape/network/merge/internal/model/AttributeMappingImpl.java
   
core3/impl/trunk/network-merge-impl/src/main/java/org/cytoscape/network/merge/internal/model/MatchingAttributeImpl.java
   
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/AttributeSetManager.java
   
core3/impl/trunk/vizmap-impl/impl/src/main/java/org/cytoscape/view/vizmap/internal/VisualMappingManagerImpl.java
   
core3/impl/trunk/webservice-psicquic-client-impl/src/main/java/org/cytoscape/webservice/psicquic/PSICQUICRestClient.java
Log:
fixes #928 All Maps using CyNode, CyEdge, and CyNetwork as key are replaced 
with WeakHashMap.  This means once Graph Objects are destroyed, managers will 
release the values. 

Modified: 
core3/api/trunk/layout-api/src/main/java/org/cytoscape/view/layout/LayoutPartition.java
===================================================================
--- 
core3/api/trunk/layout-api/src/main/java/org/cytoscape/view/layout/LayoutPartition.java
     2012-05-04 23:42:07 UTC (rev 29125)
+++ 
core3/api/trunk/layout-api/src/main/java/org/cytoscape/view/layout/LayoutPartition.java
     2012-05-05 00:36:53 UTC (rev 29126)
@@ -41,6 +41,7 @@
 import java.util.ListIterator;
 import java.util.Map;
 import java.util.Random;
+import java.util.WeakHashMap;
 
 import org.cytoscape.model.CyEdge;
 import org.cytoscape.model.CyNetwork;
@@ -95,7 +96,7 @@
        public LayoutPartition(final int nodeCount, final int edgeCount) {
                nodeList = new ArrayList<LayoutNode>(nodeCount);
                edgeList = new ArrayList<LayoutEdge>(edgeCount);
-               nodeToLayoutNode = new HashMap<CyNode,LayoutNode>(nodeCount);
+               nodeToLayoutNode = new 
WeakHashMap<CyNode,LayoutNode>(nodeCount);
                partitionNumber = 1;
        }
 
@@ -118,7 +119,7 @@
                // Initialize
                nodeList = new 
ArrayList<LayoutNode>(networkView.getModel().getNodeCount());
                edgeList = new 
ArrayList<LayoutEdge>(networkView.getModel().getEdgeCount());
-               nodeToLayoutNode = new 
HashMap<CyNode,LayoutNode>(networkView.getModel().getNodeCount());
+               nodeToLayoutNode = new 
WeakHashMap<CyNode,LayoutNode>(networkView.getModel().getNodeCount());
 
                // Now, walk the iterators and fill in the values
                nodeListInitialize(networkView, nodeSet);

Modified: 
core3/api/trunk/session-api/src/main/java/org/cytoscape/session/CySession.java
===================================================================
--- 
core3/api/trunk/session-api/src/main/java/org/cytoscape/session/CySession.java  
    2012-05-04 23:42:07 UTC (rev 29125)
+++ 
core3/api/trunk/session-api/src/main/java/org/cytoscape/session/CySession.java  
    2012-05-05 00:36:53 UTC (rev 29126)
@@ -34,6 +34,7 @@
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
+import java.util.WeakHashMap;
 
 import org.cytoscape.model.CyNetwork;
 import org.cytoscape.model.CyNode;
@@ -83,7 +84,7 @@
                networks = Collections.unmodifiableSet( b.networks == null ? 
new HashSet<CyNetwork>() : b.networks );
                netViews = Collections.unmodifiableSet( b.netViews == null ? 
new HashSet<CyNetworkView>() : b.netViews );
                tables = Collections.unmodifiableSet( b.tables == null ? new 
HashSet<CyTableMetadata>() : b.tables );
-               vsMap = Collections.unmodifiableMap( b.vsMap == null ? new 
HashMap<CyNetworkView, String>() : b.vsMap );
+               vsMap = Collections.unmodifiableMap( b.vsMap == null ? new 
WeakHashMap<CyNetworkView, String>() : b.vsMap );
                properties = Collections.unmodifiableSet( b.properties == null 
? new HashSet<CyProperty<?>>() : b.properties );
                visualStyles = Collections.unmodifiableSet( b.visualStyles == 
null ? new HashSet<VisualStyle>() : b.visualStyles );
                appFiles = Collections.unmodifiableMap( b.appFiles == null ? 
new HashMap<String, List<File>>() : b.appFiles );

Modified: 
core3/impl/trunk/core-task-impl/src/main/java/org/cytoscape/task/internal/creation/CloneNetworkTask.java
===================================================================
--- 
core3/impl/trunk/core-task-impl/src/main/java/org/cytoscape/task/internal/creation/CloneNetworkTask.java
    2012-05-04 23:42:07 UTC (rev 29125)
+++ 
core3/impl/trunk/core-task-impl/src/main/java/org/cytoscape/task/internal/creation/CloneNetworkTask.java
    2012-05-05 00:36:53 UTC (rev 29126)
@@ -33,6 +33,7 @@
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
+import java.util.WeakHashMap;
 
 import org.cytoscape.application.CyApplicationManager;
 import org.cytoscape.model.CyColumn;
@@ -125,8 +126,8 @@
        }
 
        private void cloneNodes(CyNetwork origNet, CyNetwork newNet) {
-               orig2NewNodeMap = new HashMap<CyNode, CyNode>();
-               new2OrigNodeMap = new HashMap<CyNode, CyNode>();
+               orig2NewNodeMap = new WeakHashMap<CyNode, CyNode>();
+               new2OrigNodeMap = new WeakHashMap<CyNode, CyNode>();
                for (final CyNode origNode : origNet.getNodeList()) {
                        final CyNode newNode = newNet.addNode();
                        orig2NewNodeMap.put(origNode, newNode);

Modified: 
core3/impl/trunk/core-task-impl/src/main/java/org/cytoscape/task/internal/creation/CreateNetworkViewEdit.java
===================================================================
--- 
core3/impl/trunk/core-task-impl/src/main/java/org/cytoscape/task/internal/creation/CreateNetworkViewEdit.java
       2012-05-04 23:42:07 UTC (rev 29125)
+++ 
core3/impl/trunk/core-task-impl/src/main/java/org/cytoscape/task/internal/creation/CreateNetworkViewEdit.java
       2012-05-05 00:36:53 UTC (rev 29126)
@@ -12,6 +12,7 @@
 import java.util.Collection;
 import java.util.HashMap;
 import java.util.Map;
+import java.util.WeakHashMap;
 
 import org.cytoscape.event.CyEventHelper;
 import org.cytoscape.model.CyNetwork;
@@ -78,7 +79,7 @@
                networkScaleFactor = 
view.getVisualProperty(NETWORK_SCALE_FACTOR);
 
                final Collection<View<CyNode>> nodeViews = view.getNodeViews();
-               nodesAndLocations = new HashMap<CyNode, 
NodeLocations>(nodeViews.size());
+               nodesAndLocations = new WeakHashMap<CyNode, 
NodeLocations>(nodeViews.size());
                for (final View<CyNode> nodeView : nodeViews)
                        nodesAndLocations.put(nodeView.getModel(), new 
NodeLocations(nodeView));
 

Modified: 
core3/impl/trunk/cpath2-impl/src/main/java/org/cytoscape/cpath2/internal/cytoscape/MergeNetworkEdit.java
===================================================================
--- 
core3/impl/trunk/cpath2-impl/src/main/java/org/cytoscape/cpath2/internal/cytoscape/MergeNetworkEdit.java
    2012-05-04 23:42:07 UTC (rev 29125)
+++ 
core3/impl/trunk/cpath2-impl/src/main/java/org/cytoscape/cpath2/internal/cytoscape/MergeNetworkEdit.java
    2012-05-05 00:36:53 UTC (rev 29126)
@@ -35,8 +35,8 @@
 
 import java.awt.geom.Point2D;
 import java.util.Collection;
-import java.util.HashMap;
 import java.util.Map;
+import java.util.WeakHashMap;
 
 import org.cytoscape.cpath2.internal.CPath2Factory;
 import org.cytoscape.cpath2.internal.util.AttributeUtil;
@@ -90,7 +90,7 @@
         this.cyNetwork = cyNetwork;
         this.cyEdges = cyEdges;
 
-        this.cyNodes = new HashMap<CyNode, Point2D.Double>();
+        this.cyNodes = new WeakHashMap<CyNode, Point2D.Double>();
         final Collection<CyNetworkView> views = 
factory.getCyNetworkViewManager().getNetworkViews(cyNetwork);
         CyNetworkView view = null;
                if(views.size() != 0)

Modified: 
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/customgraphicsmgr/internal/ui/CustomGraphicsManagerDialog.java
===================================================================
--- 
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/customgraphicsmgr/internal/ui/CustomGraphicsManagerDialog.java
   2012-05-04 23:42:07 UTC (rev 29125)
+++ 
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/customgraphicsmgr/internal/ui/CustomGraphicsManagerDialog.java
   2012-05-05 00:36:53 UTC (rev 29126)
@@ -1,7 +1,6 @@
 package org.cytoscape.ding.customgraphicsmgr.internal.ui;
 
 import java.awt.Dimension;
-import java.awt.Frame;
 import java.awt.image.BufferedImage;
 import java.io.File;
 import java.io.IOException;
@@ -18,7 +17,6 @@
 import org.cytoscape.ding.customgraphics.CustomGraphicsManager;
 import org.cytoscape.ding.customgraphics.CyCustomGraphics;
 import org.cytoscape.ding.customgraphics.bitmap.URLImageCustomGraphics;
-import org.cytoscape.ding.customgraphicsmgr.internal.CustomGraphicsManagerImpl;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 

Modified: 
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/AddEdgeStateMonitor.java
===================================================================
--- 
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/AddEdgeStateMonitor.java
    2012-05-04 23:42:07 UTC (rev 29125)
+++ 
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/AddEdgeStateMonitor.java
    2012-05-05 00:36:53 UTC (rev 29126)
@@ -35,6 +35,7 @@
 import java.awt.geom.Point2D;
 import java.util.HashMap;
 import java.util.Map;
+import java.util.WeakHashMap;
 
 import org.cytoscape.model.CyNode;
 import org.cytoscape.view.model.CyNetworkView;
@@ -58,8 +59,8 @@
        private final InnerCanvas canvas;
        private final DGraphView m_view;
 
-       private static Map<CyNetworkView,CyNode> sourceNodes = new 
HashMap<CyNetworkView,CyNode>();
-       private static Map<CyNetworkView,Point2D> sourcePoints = new 
HashMap<CyNetworkView,Point2D>();
+       private static Map<CyNetworkView,CyNode> sourceNodes = new 
WeakHashMap<CyNetworkView,CyNode>();
+       private static Map<CyNetworkView,Point2D> sourcePoints = new 
WeakHashMap<CyNetworkView,Point2D>();
 
        AddEdgeStateMonitor(InnerCanvas canvas, DGraphView m_view) {
                this.canvas = canvas;

Modified: 
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/DEdgeDetails.java
===================================================================
--- 
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/DEdgeDetails.java
   2012-05-04 23:42:07 UTC (rev 29125)
+++ 
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/DEdgeDetails.java
   2012-05-05 00:36:53 UTC (rev 29126)
@@ -36,6 +36,7 @@
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
+import java.util.WeakHashMap;
 
 import org.cytoscape.ding.DArrowShape;
 import org.cytoscape.ding.DVisualLexicon;
@@ -58,33 +59,33 @@
        final DGraphView m_view;
        final Object m_deletedEntry = new Object();
 
-       Map<CyEdge,Object> m_colorsLowDetail = new HashMap<CyEdge,Object>();
-       Map<CyEdge,Object> m_selectedColorsLowDetail = new 
HashMap<CyEdge,Object>();
+       Map<CyEdge,Object> m_colorsLowDetail = new WeakHashMap<CyEdge,Object>();
+       Map<CyEdge,Object> m_selectedColorsLowDetail = new 
WeakHashMap<CyEdge,Object>();
 
-       Map<CyEdge, Float> m_segmentThicknesses = new HashMap<CyEdge, Float>();
-       Map<CyEdge, Stroke> m_segmentStrokes = new HashMap<CyEdge, Stroke>();
+       Map<CyEdge, Float> m_segmentThicknesses = new WeakHashMap<CyEdge, 
Float>();
+       Map<CyEdge, Stroke> m_segmentStrokes = new WeakHashMap<CyEdge, 
Stroke>();
 
-       Map<CyEdge, Byte> m_sourceArrows = new HashMap<CyEdge, Byte>();
-       Map<CyEdge, Paint> m_sourceArrowPaints = new HashMap<CyEdge, Paint>();
-       Map<CyEdge, Byte> m_targetArrows = new HashMap<CyEdge, Byte>();
-       Map<CyEdge, Paint> m_targetArrowPaints = new HashMap<CyEdge, Paint>();
+       Map<CyEdge, Byte> m_sourceArrows = new WeakHashMap<CyEdge, Byte>();
+       Map<CyEdge, Paint> m_sourceArrowPaints = new WeakHashMap<CyEdge, 
Paint>();
+       Map<CyEdge, Byte> m_targetArrows = new WeakHashMap<CyEdge, Byte>();
+       Map<CyEdge, Paint> m_targetArrowPaints = new WeakHashMap<CyEdge, 
Paint>();
 
-       Map<CyEdge, Paint> m_targetArrowSelectedPaints = new HashMap<CyEdge, 
Paint>();
+       Map<CyEdge, Paint> m_targetArrowSelectedPaints = new 
WeakHashMap<CyEdge, Paint>();
 
-       Map<CyEdge, Integer> m_labelCounts = new HashMap<CyEdge, Integer>();
-       Map<CyEdge, String> m_labelTexts = new HashMap<CyEdge, String>();
-       Map<CyEdge, Font> m_labelFonts = new HashMap<CyEdge, Font>();
-       Map<CyEdge, Paint> m_labelPaints = new HashMap<CyEdge, Paint>();
-       Map<CyEdge, Double> m_labelWidths = new HashMap<CyEdge, Double>();
+       Map<CyEdge, Integer> m_labelCounts = new WeakHashMap<CyEdge, Integer>();
+       Map<CyEdge, String> m_labelTexts = new WeakHashMap<CyEdge, String>();
+       Map<CyEdge, Font> m_labelFonts = new WeakHashMap<CyEdge, Font>();
+       Map<CyEdge, Paint> m_labelPaints = new WeakHashMap<CyEdge, Paint>();
+       Map<CyEdge, Double> m_labelWidths = new WeakHashMap<CyEdge, Double>();
 
-       Map<CyEdge, Paint> m_unselectedPaints = new HashMap<CyEdge, Paint>();
-       Map<CyEdge, Paint> m_selectedPaints = new HashMap<CyEdge, Paint>();
+       Map<CyEdge, Paint> m_unselectedPaints = new WeakHashMap<CyEdge, 
Paint>();
+       Map<CyEdge, Paint> m_selectedPaints = new WeakHashMap<CyEdge, Paint>();
        
        // Curved or not
-       Map<CyEdge, Integer> m_lineType = new HashMap<CyEdge, Integer>();
+       Map<CyEdge, Integer> m_lineType = new WeakHashMap<CyEdge, Integer>();
        
        // Edge Bends
-       Map<CyEdge, Bend> m_edgeBends = new HashMap<CyEdge, Bend>();
+       Map<CyEdge, Bend> m_edgeBends = new WeakHashMap<CyEdge, Bend>();
 
        private Byte m_sourceArrowDefault;
        private Paint m_sourceArrowPaintDefault;
@@ -122,29 +123,29 @@
                if (isCleared)
                        return;
 
-               m_segmentThicknesses = new HashMap<CyEdge, Float>();
-               m_segmentStrokes = new HashMap<CyEdge, Stroke>();
+               m_segmentThicknesses = new WeakHashMap<CyEdge, Float>();
+               m_segmentStrokes = new WeakHashMap<CyEdge, Stroke>();
 
-               m_sourceArrows = new HashMap<CyEdge, Byte>();
-               m_sourceArrowPaints = new HashMap<CyEdge, Paint>();
-               m_targetArrows = new HashMap<CyEdge, Byte>();
-               m_targetArrowPaints = new HashMap<CyEdge, Paint>();
-               m_targetArrowSelectedPaints = new HashMap<CyEdge, Paint>();
-               m_labelCounts = new HashMap<CyEdge, Integer>();
-               m_labelTexts = new HashMap<CyEdge, String>();
-               m_labelFonts = new HashMap<CyEdge, Font>();
-               m_labelPaints = new HashMap<CyEdge, Paint>();
-               m_labelWidths = new HashMap<CyEdge, Double>();
+               m_sourceArrows = new WeakHashMap<CyEdge, Byte>();
+               m_sourceArrowPaints = new WeakHashMap<CyEdge, Paint>();
+               m_targetArrows = new WeakHashMap<CyEdge, Byte>();
+               m_targetArrowPaints = new WeakHashMap<CyEdge, Paint>();
+               m_targetArrowSelectedPaints = new WeakHashMap<CyEdge, Paint>();
+               m_labelCounts = new WeakHashMap<CyEdge, Integer>();
+               m_labelTexts = new WeakHashMap<CyEdge, String>();
+               m_labelFonts = new WeakHashMap<CyEdge, Font>();
+               m_labelPaints = new WeakHashMap<CyEdge, Paint>();
+               m_labelWidths = new WeakHashMap<CyEdge, Double>();
 
-               m_unselectedPaints = new HashMap<CyEdge, Paint>();
-               m_selectedPaints = new HashMap<CyEdge, Paint>();
+               m_unselectedPaints = new WeakHashMap<CyEdge, Paint>();
+               m_selectedPaints = new WeakHashMap<CyEdge, Paint>();
 
-               m_colorsLowDetail = new HashMap<CyEdge,Object>();
-               m_selectedColorsLowDetail = new HashMap<CyEdge,Object>();
+               m_colorsLowDetail = new WeakHashMap<CyEdge,Object>();
+               m_selectedColorsLowDetail = new WeakHashMap<CyEdge,Object>();
                
-               m_lineType = new HashMap<CyEdge, Integer>();
+               m_lineType = new WeakHashMap<CyEdge, Integer>();
                
-               m_edgeBends = new HashMap<CyEdge, Bend>();
+               m_edgeBends = new WeakHashMap<CyEdge, Bend>();
 
                isCleared = true;
        }

Modified: 
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/DGraphView.java
===================================================================
--- 
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/DGraphView.java
     2012-05-04 23:42:07 UTC (rev 29125)
+++ 
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/DGraphView.java
     2012-05-05 00:36:53 UTC (rev 29126)
@@ -59,6 +59,7 @@
 import java.util.Map;
 import java.util.Properties;
 import java.util.Set;
+import java.util.WeakHashMap;
 
 import javax.imageio.ImageIO;
 import javax.swing.Icon;
@@ -471,8 +472,8 @@
                m_edgeDetails = new DEdgeDetails(this);
                m_nodeViewDefaultSupport = new 
NodeViewDefaultSupport(m_nodeDetails, m_lock);
                m_edgeViewDefaultSupport = new 
EdgeViewDefaultSupport(m_edgeDetails, m_lock);
-               m_nodeViewMap = new HashMap<CyNode, NodeView>();
-               m_edgeViewMap = new HashMap<CyEdge, EdgeView>();
+               m_nodeViewMap = new WeakHashMap<CyNode, NodeView>();
+               m_edgeViewMap = new WeakHashMap<CyEdge, EdgeView>();
                m_printLOD = new PrintLOD();
                m_defaultNodeXMin = 0.0f;
                m_defaultNodeYMin = 0.0f;

Modified: 
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/DNodeDetails.java
===================================================================
--- 
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/DNodeDetails.java
   2012-05-04 23:42:07 UTC (rev 29125)
+++ 
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/DNodeDetails.java
   2012-05-05 00:36:53 UTC (rev 29126)
@@ -39,6 +39,7 @@
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
+import java.util.WeakHashMap;
 
 import org.cytoscape.ding.DNodeShape;
 import org.cytoscape.ding.DVisualLexicon;
@@ -69,35 +70,35 @@
        
        final Object m_deletedEntry = new Object();
 
-       Map<CyNode,Object> m_colorsLowDetail = new HashMap<CyNode,Object>();
-       Map<CyNode,Object> m_selectedColorsLowDetail = new 
HashMap<CyNode,Object>();
+       Map<CyNode,Object> m_colorsLowDetail = new WeakHashMap<CyNode,Object>();
+       Map<CyNode,Object> m_selectedColorsLowDetail = new 
WeakHashMap<CyNode,Object>();
        
-       Map<CyNode, Byte> m_shapes = new HashMap<CyNode, Byte>();
-       Map<CyNode, Paint> m_unselectedPaints = new HashMap<CyNode, Paint>();
-       Map<CyNode, Paint> m_selectedPaints = new HashMap<CyNode, Paint>();
+       Map<CyNode, Byte> m_shapes = new WeakHashMap<CyNode, Byte>();
+       Map<CyNode, Paint> m_unselectedPaints = new WeakHashMap<CyNode, 
Paint>();
+       Map<CyNode, Paint> m_selectedPaints = new WeakHashMap<CyNode, Paint>();
        
-       Map<CyNode, Float> m_borderWidths = new HashMap<CyNode, Float>();
-       Map<CyNode, Paint> m_borderPaints = new HashMap<CyNode, Paint>();
-       Map<CyNode, Integer> m_labelCounts = new HashMap<CyNode, Integer>();
+       Map<CyNode, Float> m_borderWidths = new WeakHashMap<CyNode, Float>();
+       Map<CyNode, Paint> m_borderPaints = new WeakHashMap<CyNode, Paint>();
+       Map<CyNode, Integer> m_labelCounts = new WeakHashMap<CyNode, Integer>();
        
-       Map<CyNode, String> m_labelTexts = new HashMap<CyNode, String>();
-       Map<CyNode, String> m_tooltipTexts = new HashMap<CyNode, String>();
+       Map<CyNode, String> m_labelTexts = new WeakHashMap<CyNode, String>();
+       Map<CyNode, String> m_tooltipTexts = new WeakHashMap<CyNode, String>();
 
-       Map<CyNode, Font> m_labelFonts = new HashMap<CyNode, Font>();
-       Map<CyNode, Paint> m_labelPaints = new HashMap<CyNode, Paint>();
-       Map<CyNode, Double> m_labelWidths = new HashMap<CyNode, Double>();
+       Map<CyNode, Font> m_labelFonts = new WeakHashMap<CyNode, Font>();
+       Map<CyNode, Paint> m_labelPaints = new WeakHashMap<CyNode, Paint>();
+       Map<CyNode, Double> m_labelWidths = new WeakHashMap<CyNode, Double>();
        
-       Map<CyNode, Integer> m_labelTextAnchors = new HashMap<CyNode, 
Integer>();
-       Map<CyNode, Integer> m_labelNodeAnchors = new HashMap<CyNode, 
Integer>();
-       Map<CyNode, Integer> m_labelJustifys = new HashMap<CyNode, Integer>();
-       Map<CyNode, Double> m_labelOffsetXs = new HashMap<CyNode, Double>();
-       Map<CyNode, Double> m_labelOffsetYs = new HashMap<CyNode, Double>();
+       Map<CyNode, Integer> m_labelTextAnchors = new WeakHashMap<CyNode, 
Integer>();
+       Map<CyNode, Integer> m_labelNodeAnchors = new WeakHashMap<CyNode, 
Integer>();
+       Map<CyNode, Integer> m_labelJustifys = new WeakHashMap<CyNode, 
Integer>();
+       Map<CyNode, Double> m_labelOffsetXs = new WeakHashMap<CyNode, Double>();
+       Map<CyNode, Double> m_labelOffsetYs = new WeakHashMap<CyNode, Double>();
        
-       Map<CyNode, Double> m_width = new HashMap<CyNode, Double>();
+       Map<CyNode, Double> m_width = new WeakHashMap<CyNode, Double>();
        
-       Map<CyNode, List<CustomGraphic>> m_customGraphics = new HashMap<CyNode, 
List<CustomGraphic>>();
+       Map<CyNode, List<CustomGraphic>> m_customGraphics = new 
WeakHashMap<CyNode, List<CustomGraphic>>();
        
-       private Set<CyNode> selected = new HashSet<CyNode>();
+       private final Set<CyNode> selected = new HashSet<CyNode>();
 
        // Default values
        private Color m_colorLowDetailDefault;
@@ -121,55 +122,45 @@
        private Double m_labelOffsetVectorYDefault;
        private Byte m_labelJustifyDefault; 
        private Double m_labelWidthDefault;
-       
-       private Map<CustomGraphicsVisualProperty, 
CyCustomGraphics<CustomGraphic>> defaultCustomGraphicsMap;
-       private Map<ObjectPositionVisualProperty, ObjectPosition> 
defaultCustomGraphicsPositionMap;
-       
-       private List<CustomGraphic> defaultCGList;
 
+
        private boolean isCleared = false;
        
        
        DNodeDetails(final DGraphView view) {
                this.m_view = view;
-               
-               defaultCustomGraphicsMap = new 
HashMap<CustomGraphicsVisualProperty, CyCustomGraphics<CustomGraphic>>();
-               defaultCustomGraphicsPositionMap = new 
HashMap<ObjectPositionVisualProperty, ObjectPosition>();
        }
        
        void clear() {
                if(isCleared)
                        return;
                
-               m_colorsLowDetail = new HashMap<CyNode,Object>();
-               m_selectedColorsLowDetail = new HashMap<CyNode,Object>();
+               m_colorsLowDetail = new WeakHashMap<CyNode,Object>();
+               m_selectedColorsLowDetail = new WeakHashMap<CyNode,Object>();
                
-               m_shapes = new HashMap<CyNode, Byte>();
-               m_unselectedPaints = new HashMap<CyNode, Paint>();
-               m_borderWidths = new HashMap<CyNode, Float>();
-               m_borderPaints = new HashMap<CyNode, Paint>();
-               m_labelCounts = new HashMap<CyNode, Integer>();
-               m_labelTexts = new HashMap<CyNode, String>();
-               m_tooltipTexts = new HashMap<CyNode, String>();
-               m_labelFonts = new HashMap<CyNode, Font>();
-               m_labelPaints = new HashMap<CyNode, Paint>();
-               m_labelWidths = new HashMap<CyNode, Double>();
+               m_shapes = new WeakHashMap<CyNode, Byte>();
+               m_unselectedPaints = new WeakHashMap<CyNode, Paint>();
+               m_borderWidths = new WeakHashMap<CyNode, Float>();
+               m_borderPaints = new WeakHashMap<CyNode, Paint>();
+               m_labelCounts = new WeakHashMap<CyNode, Integer>();
+               m_labelTexts = new WeakHashMap<CyNode, String>();
+               m_tooltipTexts = new WeakHashMap<CyNode, String>();
+               m_labelFonts = new WeakHashMap<CyNode, Font>();
+               m_labelPaints = new WeakHashMap<CyNode, Paint>();
+               m_labelWidths = new WeakHashMap<CyNode, Double>();
                
-               m_labelTextAnchors = new HashMap<CyNode, Integer>();
-               m_labelNodeAnchors = new HashMap<CyNode, Integer>();
-               m_labelJustifys = new HashMap<CyNode, Integer>();
-               m_labelOffsetXs = new HashMap<CyNode, Double>();
-               m_labelOffsetYs = new HashMap<CyNode, Double>();
-               m_width = new HashMap<CyNode, Double>();
+               m_labelTextAnchors = new WeakHashMap<CyNode, Integer>();
+               m_labelNodeAnchors = new WeakHashMap<CyNode, Integer>();
+               m_labelJustifys = new WeakHashMap<CyNode, Integer>();
+               m_labelOffsetXs = new WeakHashMap<CyNode, Double>();
+               m_labelOffsetYs = new WeakHashMap<CyNode, Double>();
+               m_width = new WeakHashMap<CyNode, Double>();
                
-               m_selectedPaints = new HashMap<CyNode, Paint>();
+               m_selectedPaints = new WeakHashMap<CyNode, Paint>();
                
-               m_customGraphics = new HashMap<CyNode, List<CustomGraphic>>();
+               m_customGraphics = new WeakHashMap<CyNode, 
List<CustomGraphic>>();
+
                
-               defaultCustomGraphicsMap = new 
HashMap<CustomGraphicsVisualProperty, CyCustomGraphics<CustomGraphic>>();
-               defaultCustomGraphicsPositionMap = new 
HashMap<ObjectPositionVisualProperty, ObjectPosition>();
-               defaultCGList = new ArrayList<CustomGraphic>();
-               
                // Clear all Custom Graphics
                for(final View<CyNode> nv: m_view.getNodeViews())
                        ((DNodeView) nv).removeAllCustomGraphics();

Modified: 
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/ViewState.java
===================================================================
--- 
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/ViewState.java
      2012-05-04 23:42:07 UTC (rev 29125)
+++ 
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/ViewState.java
      2012-05-05 00:36:53 UTC (rev 29126)
@@ -41,6 +41,7 @@
 import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
+import java.util.WeakHashMap;
 
 import org.cytoscape.ding.EdgeView;
 import org.cytoscape.ding.GraphView;
@@ -82,7 +83,7 @@
                // node views, which can disappear between when this edit
                // is created and when it is used.
                if (whatToSave == ViewChangeEdit.SavedObjs.ALL || whatToSave == 
ViewChangeEdit.SavedObjs.NODES) {
-                       points = new HashMap<CyNode, Point2D.Double>();
+                       points = new WeakHashMap<CyNode, Point2D.Double>();
                        for (CyNode n: view.getNetwork().getNodeList()) {
                                NodeView nv = view.getDNodeView(n);
                                points.put(n, new 
Point2D.Double(nv.getXPosition(), nv.getYPosition()));
@@ -90,8 +91,8 @@
                }
 
                if (whatToSave == ViewChangeEdit.SavedObjs.ALL || whatToSave == 
ViewChangeEdit.SavedObjs.EDGES) {
-                       anchors = new HashMap<CyEdge, List>();
-                       linetype = new HashMap<CyEdge, Integer>();
+                       anchors = new WeakHashMap<CyEdge, List>();
+                       linetype = new WeakHashMap<CyEdge, Integer>();
                        for (CyEdge e: view.getNetwork().getEdgeList()) {
                                EdgeView ev = view.getDEdgeView(e);
                                
@@ -103,7 +104,7 @@
 
                if (whatToSave == ViewChangeEdit.SavedObjs.SELECTED ||
                    whatToSave == ViewChangeEdit.SavedObjs.SELECTED_NODES ) {
-                       points = new HashMap<CyNode, Point2D.Double>();
+                       points = new WeakHashMap<CyNode, Point2D.Double>();
 
                        Iterator<CyNode> nodeIter = 
view.getSelectedNodes().iterator();
                        while (nodeIter.hasNext()) {
@@ -115,8 +116,8 @@
 
                if (whatToSave == ViewChangeEdit.SavedObjs.SELECTED ||
                    whatToSave == ViewChangeEdit.SavedObjs.SELECTED_EDGES ) {
-                       anchors = new HashMap<CyEdge, List>();
-                       linetype = new HashMap<CyEdge, Integer>();
+                       anchors = new WeakHashMap<CyEdge, List>();
+                       linetype = new WeakHashMap<CyEdge, Integer>();
 
                        Iterator<CyEdge> edgeIter = 
view.getSelectedEdges().iterator();
                        while (edgeIter.hasNext()) {

Modified: 
core3/impl/trunk/editor-impl/src/main/java/org/cytoscape/editor/internal/ClipboardManagerImpl.java
===================================================================
--- 
core3/impl/trunk/editor-impl/src/main/java/org/cytoscape/editor/internal/ClipboardManagerImpl.java
  2012-05-04 23:42:07 UTC (rev 29125)
+++ 
core3/impl/trunk/editor-impl/src/main/java/org/cytoscape/editor/internal/ClipboardManagerImpl.java
  2012-05-05 00:36:53 UTC (rev 29126)
@@ -4,7 +4,7 @@
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
-import java.util.Set;
+import java.util.WeakHashMap;
 
 import org.cytoscape.model.CyColumn;
 import org.cytoscape.model.CyEdge;
@@ -20,20 +20,17 @@
 import org.cytoscape.view.presentation.property.BasicVisualLexicon;
 
 
-public class ClipboardManagerImpl {
-       CyNetworkView sourceView;
-       List<View<CyNode>> nodeViews;
-       List<View<CyEdge>> edgeViews;
+public final class ClipboardManagerImpl {
+       private CyNetworkView sourceView;
+       private List<View<CyNode>> nodeViews;
+       private List<View<CyEdge>> edgeViews;
 
        // Row maps
-       Map<CyIdentifiable, CyRow> oldDefaultRowMap;
-       Map<CyIdentifiable, CyRow> oldHiddenRowMap;
+       private Map<CyIdentifiable, CyRow> oldDefaultRowMap;
+       private Map<CyIdentifiable, CyRow> oldHiddenRowMap;
 
-       double xCenter, yCenter;
+       private double xCenter, yCenter;
 
-       public ClipboardManagerImpl() {
-       }
-
        public boolean clipboardHasData() {
                if (nodeViews != null && nodeViews.size() > 0)
                        return true;
@@ -45,8 +42,8 @@
                CyNetwork sourceNetwork = sourceView.getModel();
                nodeViews = new ArrayList<View<CyNode>>();
                edgeViews = new ArrayList<View<CyEdge>>();
-               oldDefaultRowMap = new HashMap<CyIdentifiable, CyRow>();
-               oldHiddenRowMap = new HashMap<CyIdentifiable, CyRow>();
+               oldDefaultRowMap = new WeakHashMap<CyIdentifiable, CyRow>();
+               oldHiddenRowMap = new WeakHashMap<CyIdentifiable, CyRow>();
 
                xCenter = 0.0;
                yCenter = 0.0;
@@ -77,7 +74,7 @@
 
        public List<CyIdentifiable> paste(CyNetworkView targetView, double x, 
double y, boolean createColumns) {
                List<CyIdentifiable> pastedObjects = new 
ArrayList<CyIdentifiable>();
-               Map<CyRow, CyRow> rowMap = new HashMap<CyRow, CyRow>();
+               final Map<CyRow, CyRow> rowMap = new HashMap<CyRow, CyRow>();
 
                CyNetwork sourceNetwork = sourceView.getModel();
 
@@ -91,7 +88,7 @@
                // nodes and add the edges.
 
                // Pass 1: add the nodes 
-               Map<CyNode, CyNode> newNodeMap = new HashMap<CyNode, CyNode>();
+               final Map<CyNode, CyNode> newNodeMap = new HashMap<CyNode, 
CyNode>();
                for (View<CyNode> nodeView: nodeViews) {
                        CyNode node = nodeView.getModel();
                        CyNode newNode = null;

Modified: 
core3/impl/trunk/editor-impl/src/main/java/org/cytoscape/editor/internal/CopyTaskFactory.java
===================================================================
--- 
core3/impl/trunk/editor-impl/src/main/java/org/cytoscape/editor/internal/CopyTaskFactory.java
       2012-05-04 23:42:07 UTC (rev 29125)
+++ 
core3/impl/trunk/editor-impl/src/main/java/org/cytoscape/editor/internal/CopyTaskFactory.java
       2012-05-05 00:36:53 UTC (rev 29126)
@@ -1,11 +1,8 @@
 package org.cytoscape.editor.internal;
 
-import org.cytoscape.model.CyNetwork;
 import org.cytoscape.model.CyNetworkManager;
-import org.cytoscape.model.CyNode;
 import org.cytoscape.task.AbstractNetworkViewTaskFactory;
 import org.cytoscape.view.model.CyNetworkView;
-import org.cytoscape.view.model.View;
 import org.cytoscape.work.TaskIterator;
 
 public class CopyTaskFactory extends AbstractNetworkViewTaskFactory {

Modified: 
core3/impl/trunk/editor-impl/src/main/java/org/cytoscape/editor/internal/CutTaskFactory.java
===================================================================
--- 
core3/impl/trunk/editor-impl/src/main/java/org/cytoscape/editor/internal/CutTaskFactory.java
        2012-05-04 23:42:07 UTC (rev 29125)
+++ 
core3/impl/trunk/editor-impl/src/main/java/org/cytoscape/editor/internal/CutTaskFactory.java
        2012-05-05 00:36:53 UTC (rev 29126)
@@ -1,11 +1,8 @@
 package org.cytoscape.editor.internal;
 
-import org.cytoscape.model.CyNetwork;
 import org.cytoscape.model.CyNetworkManager;
-import org.cytoscape.model.CyNode;
 import org.cytoscape.task.AbstractNetworkViewTaskFactory;
 import org.cytoscape.view.model.CyNetworkView;
-import org.cytoscape.view.model.View;
 import org.cytoscape.work.TaskIterator;
 
 public class CutTaskFactory extends AbstractNetworkViewTaskFactory {

Modified: 
core3/impl/trunk/editor-impl/src/main/java/org/cytoscape/editor/internal/PasteTask.java
===================================================================
--- 
core3/impl/trunk/editor-impl/src/main/java/org/cytoscape/editor/internal/PasteTask.java
     2012-05-04 23:42:07 UTC (rev 29125)
+++ 
core3/impl/trunk/editor-impl/src/main/java/org/cytoscape/editor/internal/PasteTask.java
     2012-05-05 00:36:53 UTC (rev 29126)
@@ -1,35 +1,26 @@
 package org.cytoscape.editor.internal;
 
 import java.awt.geom.Point2D;
-import java.util.List;
 
-import org.cytoscape.event.CyEventHelper;
-import org.cytoscape.model.CyNetwork;
-import org.cytoscape.model.CyEdge;
-import org.cytoscape.model.CyNode;
-import org.cytoscape.model.CyRow;
 import org.cytoscape.task.AbstractNetworkViewTask;
 import org.cytoscape.view.model.CyNetworkView;
-import org.cytoscape.view.model.View;
-import org.cytoscape.view.presentation.property.BasicVisualLexicon;
 import org.cytoscape.view.vizmap.VisualMappingManager;
 import org.cytoscape.view.vizmap.VisualStyle;
 import org.cytoscape.work.TaskMonitor;
 
-public class PasteTask extends AbstractNetworkViewTask{
+public class PasteTask extends AbstractNetworkViewTask {
 
        private final VisualMappingManager vmm;
        private final Point2D xformPt;
-       private static int new_node_index =1;
        private final ClipboardManagerImpl clipMgr;
-       
-       public PasteTask(final VisualMappingManager vmm, final CyNetworkView 
view,final Point2D xformPt, 
-                        final ClipboardManagerImpl clip) {
+
+       public PasteTask(final VisualMappingManager vmm, final CyNetworkView 
view, final Point2D xformPt,
+                       final ClipboardManagerImpl clip) {
                super(view);
                this.vmm = vmm;
                this.xformPt = xformPt;
                this.clipMgr = clip;
-               
+
        }
 
        // TODO: add an isRead that is ready when we have something to paste
@@ -42,7 +33,7 @@
                        clipMgr.paste(view, xformPt.getX(), xformPt.getY(), 
true);
 
                view.updateView();
-               
+
                // Apply visual style
                VisualStyle vs = vmm.getVisualStyle(view);
                vs.apply(view);

Modified: 
core3/impl/trunk/filter-impl/src/main/java/org/cytoscape/filter/internal/quickfind/util/QuickFindImpl.java
===================================================================
--- 
core3/impl/trunk/filter-impl/src/main/java/org/cytoscape/filter/internal/quickfind/util/QuickFindImpl.java
  2012-05-04 23:42:07 UTC (rev 29125)
+++ 
core3/impl/trunk/filter-impl/src/main/java/org/cytoscape/filter/internal/quickfind/util/QuickFindImpl.java
  2012-05-05 00:36:53 UTC (rev 29126)
@@ -30,21 +30,19 @@
 
 import java.util.ArrayList;
 import java.util.Date;
-import java.util.HashMap;
 import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
+import java.util.WeakHashMap;
 
 import org.cytoscape.filter.internal.widgets.autocomplete.index.GenericIndex;
 import org.cytoscape.filter.internal.widgets.autocomplete.index.Hit;
 import org.cytoscape.filter.internal.widgets.autocomplete.index.IndexFactory;
 import org.cytoscape.model.CyColumn;
-import org.cytoscape.model.CyEdge;
+import org.cytoscape.model.CyIdentifiable;
 import org.cytoscape.model.CyNetwork;
-import org.cytoscape.model.CyNode;
 import org.cytoscape.model.CyRow;
 import org.cytoscape.model.CyTable;
-import org.cytoscape.model.CyIdentifiable;
 import org.cytoscape.work.TaskMonitor;
 
 
@@ -66,7 +64,7 @@
 
        public QuickFindImpl() {
                this.listenerList = new ArrayList<QuickFindListener>();
-               this.networkMap = new HashMap<CyNetwork, GenericIndex>();
+               this.networkMap = new WeakHashMap<CyNetwork, GenericIndex>();
        }
        
        

Modified: 
core3/impl/trunk/io-impl/impl/src/main/java/org/cytoscape/io/internal/read/session/AbstractSessionReader.java
===================================================================
--- 
core3/impl/trunk/io-impl/impl/src/main/java/org/cytoscape/io/internal/read/session/AbstractSessionReader.java
       2012-05-04 23:42:07 UTC (rev 29125)
+++ 
core3/impl/trunk/io-impl/impl/src/main/java/org/cytoscape/io/internal/read/session/AbstractSessionReader.java
       2012-05-05 00:36:53 UTC (rev 29126)
@@ -36,6 +36,7 @@
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
+import java.util.WeakHashMap;
 import java.util.zip.ZipEntry;
 import java.util.zip.ZipInputStream;
 
@@ -68,7 +69,7 @@
        protected final Set<CyNetwork> networks = new 
LinkedHashSet<CyNetwork>();
        protected final Set<CyNetworkView> networkViews = new 
LinkedHashSet<CyNetworkView>();
        protected final Set<VisualStyle> visualStyles = new 
HashSet<VisualStyle>();
-       protected final Map<CyNetworkView, String> visualStyleMap = new 
HashMap<CyNetworkView, String>();
+       protected final Map<CyNetworkView, String> visualStyleMap = new 
WeakHashMap<CyNetworkView, String>();
        protected final Set<CyTableMetadata> tableMetadata = new 
HashSet<CyTableMetadata>();
        protected final Map<String, List<File>> appFileListMap = new 
HashMap<String, List<File>>();
        protected final Map<Class<? extends CyIdentifiable>, Map<Object, ? 
extends CyIdentifiable>> objectMap = new HashMap<Class<? extends 
CyIdentifiable>, Map<Object, ? extends CyIdentifiable>>();

Modified: 
core3/impl/trunk/io-impl/impl/src/main/java/org/cytoscape/io/internal/util/ReadCache.java
===================================================================
--- 
core3/impl/trunk/io-impl/impl/src/main/java/org/cytoscape/io/internal/util/ReadCache.java
   2012-05-04 23:42:07 UTC (rev 29125)
+++ 
core3/impl/trunk/io-impl/impl/src/main/java/org/cytoscape/io/internal/util/ReadCache.java
   2012-05-05 00:36:53 UTC (rev 29126)
@@ -30,6 +30,7 @@
 import java.util.HashMap;
 import java.util.Map;
 import java.util.Set;
+import java.util.WeakHashMap;
 
 import org.cytoscape.model.CyEdge;
 import org.cytoscape.model.CyIdentifiable;
@@ -70,9 +71,9 @@
                
                nodeByNameMap = new HashMap<Object, CyNode>();
                
-               nodeLinkMap = new HashMap<CyNetwork, Set<Long>>();
-               edgeLinkMap = new HashMap<CyNetwork, Set<Long>>();
-               networkPointerMap = new HashMap<CyNode, Object>();
+               nodeLinkMap = new WeakHashMap<CyNetwork, Set<Long>>();
+               edgeLinkMap = new WeakHashMap<CyNetwork, Set<Long>>();
+               networkPointerMap = new WeakHashMap<CyNode, Object>();
        }
        
        public void dispose() {

Modified: 
core3/impl/trunk/io-impl/impl/src/main/java/org/cytoscape/io/internal/write/xgmml/XGMMLWriter.java
===================================================================
--- 
core3/impl/trunk/io-impl/impl/src/main/java/org/cytoscape/io/internal/write/xgmml/XGMMLWriter.java
  2012-05-04 23:42:07 UTC (rev 29125)
+++ 
core3/impl/trunk/io-impl/impl/src/main/java/org/cytoscape/io/internal/write/xgmml/XGMMLWriter.java
  2012-05-05 00:36:53 UTC (rev 29126)
@@ -42,6 +42,7 @@
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
+import java.util.WeakHashMap;
 
 import org.cytoscape.io.internal.read.xgmml.ObjectTypeMap;
 import org.cytoscape.io.internal.util.UnrecognizedVisualPropertyManager;
@@ -132,9 +133,9 @@
     private final CyNetworkManager networkMgr;
     private final CyRootNetworkManager rootNetworkMgr;
 
-    private HashMap<CyNode, CyNode> writtenNodeMap = new HashMap<CyNode, 
CyNode>();
-    private HashMap<CyEdge, CyEdge> writtenEdgeMap = new HashMap<CyEdge, 
CyEdge>();
-    private HashMap<CyNetwork, CyNetwork> writtenNetMap = new 
HashMap<CyNetwork, CyNetwork>();
+    private final Map<CyNode, CyNode> writtenNodeMap = new WeakHashMap<CyNode, 
CyNode>();
+    private final Map<CyEdge, CyEdge> writtenEdgeMap = new WeakHashMap<CyEdge, 
CyEdge>();
+    private final Map<CyNetwork, CyNetwork> writtenNetMap = new 
WeakHashMap<CyNetwork, CyNetwork>();
 
     private int depth = 0;
     private String indentString = "";

Modified: 
core3/impl/trunk/network-analyzer-impl/src/main/java/de/mpg/mpi_inf/bioinf/netanalyzer/DirNetworkAnalyzer.java
===================================================================
--- 
core3/impl/trunk/network-analyzer-impl/src/main/java/de/mpg/mpi_inf/bioinf/netanalyzer/DirNetworkAnalyzer.java
      2012-05-04 23:42:07 UTC (rev 29125)
+++ 
core3/impl/trunk/network-analyzer-impl/src/main/java/de/mpg/mpi_inf/bioinf/netanalyzer/DirNetworkAnalyzer.java
      2012-05-05 00:36:53 UTC (rev 29126)
@@ -26,6 +26,7 @@
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
+import java.util.WeakHashMap;
 
 import org.cytoscape.model.CyNetwork;
 import org.cytoscape.model.CyNode;
@@ -81,8 +82,8 @@
                this.numberOfIsolatedNodes = 0;
                this.numberOfSelfLoops = 0;
                this.multiEdgePartners = 0;
-               this.nodeBetweenness = new HashMap<CyNode, NodeBetweenInfo>();
-               this.edgeBetweenness = new HashMap<CyEdge, Double>();
+               this.nodeBetweenness = new WeakHashMap<CyNode, 
NodeBetweenInfo>();
+               this.edgeBetweenness = new WeakHashMap<CyEdge, Double>();
                this.stress = new HashMap<CyNode, Long>();
                computeNB = true;
                
AttributeSetup.createDirectedNodeAttributes(aNetwork.getDefaultNodeTable());

Modified: 
core3/impl/trunk/network-merge-impl/src/main/java/org/cytoscape/network/merge/internal/model/AttributeMappingImpl.java
===================================================================
--- 
core3/impl/trunk/network-merge-impl/src/main/java/org/cytoscape/network/merge/internal/model/AttributeMappingImpl.java
      2012-05-04 23:42:07 UTC (rev 29125)
+++ 
core3/impl/trunk/network-merge-impl/src/main/java/org/cytoscape/network/merge/internal/model/AttributeMappingImpl.java
      2012-05-05 00:36:53 UTC (rev 29126)
@@ -48,6 +48,7 @@
 import java.util.Map;
 import java.util.HashMap;
 import java.util.Iterator;
+import java.util.WeakHashMap;
 
 import org.cytoscape.network.merge.internal.util.ColumnType;
 
@@ -65,10 +66,10 @@
     private final String nullAttr = ""; // to hold a position in vector 
standing that it's not a attribute
 
     public AttributeMappingImpl() {
-        attributeMapping = new HashMap<CyNetwork,List<String>>();
+        attributeMapping = new WeakHashMap<CyNetwork,List<String>>();
         mergedAttributes = new ArrayList<String>();
         mergedAttributeTypes = new ArrayList<ColumnType>();
-        cyTables = new HashMap<CyNetwork,CyTable>();
+        cyTables = new WeakHashMap<CyNetwork,CyTable>();
     }
 
 

Modified: 
core3/impl/trunk/network-merge-impl/src/main/java/org/cytoscape/network/merge/internal/model/MatchingAttributeImpl.java
===================================================================
--- 
core3/impl/trunk/network-merge-impl/src/main/java/org/cytoscape/network/merge/internal/model/MatchingAttributeImpl.java
     2012-05-04 23:42:07 UTC (rev 29125)
+++ 
core3/impl/trunk/network-merge-impl/src/main/java/org/cytoscape/network/merge/internal/model/MatchingAttributeImpl.java
     2012-05-05 00:36:53 UTC (rev 29126)
@@ -37,9 +37,9 @@
 package org.cytoscape.network.merge.internal.model;
 
 
+import java.util.Map;
 import java.util.Set;
-import java.util.Map;
-import java.util.HashMap;
+import java.util.WeakHashMap;
 
 import org.cytoscape.model.CyColumn;
 import org.cytoscape.model.CyNetwork;
@@ -55,7 +55,7 @@
     private Map<CyNetwork,CyColumn> attributeForMatching; // network to 
attribute name
     
     public MatchingAttributeImpl() {
-        attributeForMatching = new HashMap<CyNetwork,CyColumn>();
+        attributeForMatching = new WeakHashMap<CyNetwork,CyColumn>();
     }
 
     @Override

Modified: 
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/AttributeSetManager.java
===================================================================
--- 
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/AttributeSetManager.java
      2012-05-04 23:42:07 UTC (rev 29125)
+++ 
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/AttributeSetManager.java
      2012-05-05 00:36:53 UTC (rev 29126)
@@ -5,14 +5,15 @@
 import java.util.HashSet;
 import java.util.Map;
 import java.util.Set;
+import java.util.WeakHashMap;
 
 import org.cytoscape.model.CyColumn;
 import org.cytoscape.model.CyEdge;
+import org.cytoscape.model.CyIdentifiable;
 import org.cytoscape.model.CyNetwork;
 import org.cytoscape.model.CyNetworkTableManager;
 import org.cytoscape.model.CyNode;
 import org.cytoscape.model.CyTable;
-import org.cytoscape.model.CyIdentifiable;
 import org.cytoscape.model.events.ColumnCreatedEvent;
 import org.cytoscape.model.events.ColumnCreatedListener;
 import org.cytoscape.model.events.ColumnDeletedEvent;
@@ -43,8 +44,8 @@
        public AttributeSetManager(final CyNetworkTableManager tableMgr) {
                this.tableMgr = tableMgr;
 
-               this.attrSets = new HashMap<CyNetwork, Map<Class<? extends 
CyIdentifiable>, AttributeSet>>();
-               this.tableSets = new HashMap<CyNetwork, Map<Class<? extends 
CyIdentifiable>, Set<CyTable>>>();
+               this.attrSets = new WeakHashMap<CyNetwork, Map<Class<? extends 
CyIdentifiable>, AttributeSet>>();
+               this.tableSets = new WeakHashMap<CyNetwork, Map<Class<? extends 
CyIdentifiable>, Set<CyTable>>>();
        }
 
        public AttributeSet getAttributeSet(final CyNetwork network, final 
Class<? extends CyIdentifiable> objectType) {

Modified: 
core3/impl/trunk/vizmap-impl/impl/src/main/java/org/cytoscape/view/vizmap/internal/VisualMappingManagerImpl.java
===================================================================
--- 
core3/impl/trunk/vizmap-impl/impl/src/main/java/org/cytoscape/view/vizmap/internal/VisualMappingManagerImpl.java
    2012-05-04 23:42:07 UTC (rev 29125)
+++ 
core3/impl/trunk/vizmap-impl/impl/src/main/java/org/cytoscape/view/vizmap/internal/VisualMappingManagerImpl.java
    2012-05-05 00:36:53 UTC (rev 29126)
@@ -65,8 +65,6 @@
        
        // Default Style
        private static final Color NETWORK_COLOR = Color.WHITE;
-       private static final Color NETWORK_NODE_SELECTED_COLOR = Color.YELLOW;
-       private static final Color NETWORK_EDGE_SELECTED_COLOR = Color.YELLOW;
        private static final Color NODE_COLOR = new Color(0x4F, 0x94, 0xCD);
        private static final Color NODE_LABEL_COLOR = Color.BLACK;
        private static final Color EDGE_COLOR = new Color(50, 50, 50);
@@ -83,8 +81,8 @@
        private final CyEventHelper cyEventHelper;
        private final VisualLexiconManager lexManager;
 
-       public VisualMappingManagerImpl(final CyEventHelper eventHelper,
-                       final VisualStyleFactory factory, final 
VisualLexiconManager lexManager) {
+       public VisualMappingManagerImpl(final CyEventHelper eventHelper, final 
VisualStyleFactory factory,
+                       final VisualLexiconManager lexManager) {
                if (eventHelper == null)
                        throw new NullPointerException("CyEventHelper cannot be 
null");
 
@@ -131,7 +129,6 @@
                        style = getDefaultVisualStyle();
                        network2VisualStyleMap.put(nv, style);
                }
-
                return style;
        }
 

Modified: 
core3/impl/trunk/webservice-psicquic-client-impl/src/main/java/org/cytoscape/webservice/psicquic/PSICQUICRestClient.java
===================================================================
--- 
core3/impl/trunk/webservice-psicquic-client-impl/src/main/java/org/cytoscape/webservice/psicquic/PSICQUICRestClient.java
    2012-05-04 23:42:07 UTC (rev 29125)
+++ 
core3/impl/trunk/webservice-psicquic-client-impl/src/main/java/org/cytoscape/webservice/psicquic/PSICQUICRestClient.java
    2012-05-05 00:36:53 UTC (rev 29126)
@@ -11,6 +11,7 @@
 import java.util.Set;
 import java.util.SortedSet;
 import java.util.TreeSet;
+import java.util.WeakHashMap;
 import java.util.concurrent.Callable;
 import java.util.concurrent.CancellationException;
 import java.util.concurrent.CompletionService;
@@ -261,7 +262,7 @@
                        this.serviceURL = serviceURL;
                        this.query = query;
                        this.mode = mode;
-                       this.returnThis = new HashMap<CyNetwork, String>();
+                       this.returnThis = new WeakHashMap<CyNetwork, String>();
                        this.networkBuilder = new CyNetworkBuilder(factory);
                }
 

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