Author: kono
Date: 2009-11-24 14:34:12 -0800 (Tue, 24 Nov 2009)
New Revision: 18567

Modified:
   cytoscape/trunk/src/cytoscape/util/NestedNetworkImageManager.java
Log:
Basic logic for image manager works now.

Modified: cytoscape/trunk/src/cytoscape/util/NestedNetworkImageManager.java
===================================================================
--- cytoscape/trunk/src/cytoscape/util/NestedNetworkImageManager.java   
2009-11-24 21:45:56 UTC (rev 18566)
+++ cytoscape/trunk/src/cytoscape/util/NestedNetworkImageManager.java   
2009-11-24 22:34:12 UTC (rev 18567)
@@ -1,20 +1,9 @@
 package cytoscape.util;
 
-import giny.model.GraphPerspective;
-import giny.model.Node;
-
-import java.awt.Graphics;
-import java.awt.GraphicsConfiguration;
-import java.awt.GraphicsDevice;
-import java.awt.GraphicsEnvironment;
-import java.awt.HeadlessException;
 import java.awt.Image;
 import java.awt.TexturePaint;
-import java.awt.Transparency;
 import java.awt.geom.Rectangle2D;
 import java.awt.image.BufferedImage;
-import java.awt.image.ColorModel;
-import java.awt.image.PixelGrabber;
 import java.beans.PropertyChangeEvent;
 import java.beans.PropertyChangeListener;
 import java.io.IOException;
@@ -25,11 +14,11 @@
 import java.util.Set;
 
 import javax.imageio.ImageIO;
-import javax.swing.ImageIcon;
 
 import cytoscape.CyNetwork;
 import cytoscape.CyNode;
 import cytoscape.Cytoscape;
+import cytoscape.layout.CyLayouts;
 import cytoscape.render.stateful.NodeDetails;
 import cytoscape.view.CyNetworkView;
 import cytoscape.view.CytoscapeDesktop;
@@ -40,8 +29,8 @@
 public class NestedNetworkImageManager implements PropertyChangeListener {
        private final Image DEF_IMAGE;
        
-       private static final int DEF_WIDTH = 100;
-       private static final int DEF_HEIGHT = 100;
+       private static final int DEF_WIDTH = 200;
+       private static final int DEF_HEIGHT = 200;
        
        private static NestedNetworkImageManager networkImageGenerator;
        
@@ -71,13 +60,6 @@
        
        
        public Image getImage(final CyNetwork network) {
-               
-               System.out.println("!!!!!! Image map size = " + 
this.networkToImageMap.size() + 
-                               ", network = " + network + ", val = " + 
networkToImageMap.get(network));
-               for(CyNetwork key:this.networkToImageMap.keySet()) {
-                       System.out.println("Key ==> " + key);
-               }
-               
                if (networkToImageMap.get(network) == null) {
                        return null;
                } else {
@@ -107,28 +89,30 @@
                                this.networkToImageMap.remove(network);
                        }
                } else if 
(CytoscapeDesktop.NETWORK_VIEW_CREATED.equals(evt.getPropertyName())) {
-                       //TODO: Need to sync. image update timing.
                        final CyNetworkView view = 
(CyNetworkView)evt.getNewValue();
                        final CyNetwork viewNetwork = view.getNetwork();
+                       System.out.println("--------- creating : " + 
viewNetwork.getTitle());
                        if (networkToImageMap.containsKey(viewNetwork)) {
                                updateImage(viewNetwork, view);
                                refreshViews(viewNetwork);
                        }
-                       
-                       boolean updateView = false;
-                       for (final CyNode node: 
(List<CyNode>)viewNetwork.nodesList()) {
-                               final CyNetwork nestedNetwork = (CyNetwork) 
node.getNestedNetwork();
-                               if (nestedNetwork != null) {
-                                       updateView = true;
-                                       addCustomGraphics(nestedNetwork, view, 
node);
-                               }
+                       refreshView(viewNetwork, view);
+                       System.out.println("--------- event handling finished 
for: " + viewNetwork.getTitle());
+               }
+       }
+       
+       private void refreshView(final CyNetwork viewNetwork, final 
CyNetworkView view) {
+               boolean updateView = false;
+               for (final CyNode node: (List<CyNode>)viewNetwork.nodesList()) {
+                       final CyNetwork nestedNetwork = (CyNetwork) 
node.getNestedNetwork();
+                       if (nestedNetwork != null) {
+                               updateView = true;
+                               addCustomGraphics(nestedNetwork, view, node);
                        }
-                       if (updateView) {
-                               view.updateView();
-                       }
-                       
-                       System.out.println("**** updating network: " + 
viewNetwork.getTitle());                 
                }
+               if (updateView) {
+                       view.updateView();
+               }
        }
        
        
@@ -139,14 +123,14 @@
                        if (node.getNestedNetwork() == nestedNetwork) {
                                for (final CyNetworkView view: 
Cytoscape.getNetworkViewMap().values()) {
                                        if (view.getNodeView(node) != null) {
-                                               updateViews.add(view);
+                                               updateViews.add(view);          
                                
                                        }
                                }
                        }
                }
                
                for (final CyNetworkView view: updateViews) {
-                       view.updateView();
+                       refreshView(view.getNetwork(), view);
                }
        }
 
@@ -158,9 +142,12 @@
                        networkToImageMap.put(network, new 
ImageAndReferenceCount(DEF_IMAGE));
                } else {
                        // Create image from this view.
+                       view.applyLayout(CyLayouts.getLayout("force-directed"));
                        final DGraphView dView = (DGraphView) view;
+                       dView.fitContent();
+                       dView.updateView();
                        final Image image = dView.createImage(DEF_WIDTH, 
DEF_HEIGHT, 1.0);
-                       System.out.println("*************View FOUND for: " + 
network.getTitle() +" == " + view.getNetwork().getTitle() + image);
+                       System.out.println("*************View FOUND for: " + 
network.getTitle() +" == " + view.getNetwork().getNodeCount());
                        networkToImageMap.put(network, new 
ImageAndReferenceCount(image));
                }
        }
@@ -170,15 +157,10 @@
                System.out.println("*** Adding custom graphics: Count = " + 
dView.getNodeViewCount() + " node = " + parentNode.getIdentifier());
                Image networkImage = getImage(network);
                final DNodeView nodeView = 
(DNodeView)dView.getNodeView(parentNode);
-               final Rectangle2D rect = new Rectangle2D.Double(-50.0, -50.0, 
50.0, 50.0);
+               final Rectangle2D rect = new Rectangle2D.Double(0.0, 0.0, 
200.0, 200.0);
                
-               System.out.println("*** ADD CUSTOM: " + nodeView + ", IMG = " + 
networkImage +", RECT = " + rect);
-               if (nodeView != null) {
-                       if (networkImage == null) {
-                               networkImage = DEF_IMAGE;
-                       }
-                       nodeView.addCustomGraphic(rect, new 
TexturePaint((BufferedImage) networkImage, rect), NodeDetails.ANCHOR_CENTER);
-               }
+               System.out.println("*** ADD CUSTOM: " + nodeView);
+               nodeView.addCustomGraphic(rect, new 
TexturePaint((BufferedImage) networkImage, rect), NodeDetails.ANCHOR_CENTER);
        }
        
        

--

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