Author: kono
Date: 2010-12-28 16:46:12 -0800 (Tue, 28 Dec 2010)
New Revision: 23273

Added:
   
core3/ding-presentation-impl/trunk/src/main/java/org/cytoscape/ding/impl/CurrentDGVManager.java
   
core3/session-api/trunk/src/main/java/org/cytoscape/session/events/SetCurrentRenderingEngineEvent.java
   
core3/session-api/trunk/src/main/java/org/cytoscape/session/events/SetCurrentRenderingEngineListener.java
Modified:
   
core3/core-task-impl/trunk/src/main/java/org/cytoscape/task/internal/io/ViewWriter.java
   core3/ding-presentation-impl/trunk/pom.xml
   
core3/ding-presentation-impl/trunk/src/main/java/org/cytoscape/ding/impl/BirdsEyeView.java
   
core3/ding-presentation-impl/trunk/src/main/java/org/cytoscape/ding/impl/DingNavigationRenderingEngine.java
   
core3/ding-presentation-impl/trunk/src/main/java/org/cytoscape/ding/impl/DingNavigationRenderingEngineFactory.java
   
core3/ding-presentation-impl/trunk/src/main/java/org/cytoscape/ding/impl/DingRenderingEngineFactory.java
   
core3/ding-presentation-impl/trunk/src/main/java/org/cytoscape/ding/impl/InnerCanvas.java
   
core3/ding-presentation-impl/trunk/src/main/resources/META-INF/spring/bundle-context-osgi.xml
   
core3/ding-presentation-impl/trunk/src/main/resources/META-INF/spring/bundle-context.xml
   
core3/io-impl/trunk/src/main/java/org/cytoscape/io/internal/write/graphics/BitmapWriterFactory.java
   
core3/session-impl/trunk/src/main/java/org/cytoscape/session/internal/CyApplicationManagerImpl.java
   
core3/swing-application-impl/trunk/src/main/java/org/cytoscape/internal/view/BirdsEyeViewHandler.java
   
core3/swing-application-impl/trunk/src/main/java/org/cytoscape/internal/view/NetworkViewManager.java
   
core3/swing-application-impl/trunk/src/main/resources/META-INF/spring/bundle-context-osgi.xml
   
core3/swing-application-impl/trunk/src/main/resources/META-INF/spring/bundle-context.xml
Log:
Bird's eye view is partially working.

Modified: 
core3/core-task-impl/trunk/src/main/java/org/cytoscape/task/internal/io/ViewWriter.java
===================================================================
--- 
core3/core-task-impl/trunk/src/main/java/org/cytoscape/task/internal/io/ViewWriter.java
     2010-12-28 23:44:07 UTC (rev 23272)
+++ 
core3/core-task-impl/trunk/src/main/java/org/cytoscape/task/internal/io/ViewWriter.java
     2010-12-29 00:46:12 UTC (rev 23273)
@@ -16,7 +16,7 @@
 public final class ViewWriter extends 
AbstractCyWriter<PresentationWriterManager> {
 
        private final View<?> view;
-       private final RenderingEngine re;
+       private final RenderingEngine<?> re;
 
        /**
         * @param writerManager The {...@link 
org.cytoscape.io.write.PresentationWriterManager} used to determine which type 
of
@@ -24,7 +24,7 @@
         * @param view The View object to be written to the specified file.
         * @param re The RenderingEngine used to generate the image to be 
written to the file.  
         */
-    public ViewWriter(PresentationWriterManager writerManager, View<?> view, 
RenderingEngine re ) {
+    public ViewWriter(final PresentationWriterManager writerManager, final 
View<?> view, final RenderingEngine<?> re ) {
                super(writerManager);
 
                if ( view == null )

Modified: core3/ding-presentation-impl/trunk/pom.xml
===================================================================
--- core3/ding-presentation-impl/trunk/pom.xml  2010-12-28 23:44:07 UTC (rev 
23272)
+++ core3/ding-presentation-impl/trunk/pom.xml  2010-12-29 00:46:12 UTC (rev 
23273)
@@ -162,6 +162,12 @@
                        <artifactId>dnd-api</artifactId>
                        <version>1.0-SNAPSHOT</version>
                </dependency>
+               
+               <dependency>
+                       <groupId>org.cytoscape</groupId>
+                       <artifactId>session-api</artifactId>
+                       <version>3.0.0-alpha2-SNAPSHOT</version>
+               </dependency>
 
                <!-- Testing -->
                <dependency>

Modified: 
core3/ding-presentation-impl/trunk/src/main/java/org/cytoscape/ding/impl/BirdsEyeView.java
===================================================================
--- 
core3/ding-presentation-impl/trunk/src/main/java/org/cytoscape/ding/impl/BirdsEyeView.java
  2010-12-28 23:44:07 UTC (rev 23272)
+++ 
core3/ding-presentation-impl/trunk/src/main/java/org/cytoscape/ding/impl/BirdsEyeView.java
  2010-12-29 00:46:12 UTC (rev 23273)
@@ -49,20 +49,33 @@
 import java.awt.geom.Point2D;
 import java.awt.geom.Rectangle2D;
 import java.awt.image.BufferedImage;
+import java.awt.print.Printable;
+import java.util.Properties;
 
+import javax.swing.Icon;
+
 import org.cytoscape.ding.GraphView;
+import org.cytoscape.model.CyNetwork;
+import org.cytoscape.view.model.View;
+import org.cytoscape.view.model.VisualLexicon;
+import org.cytoscape.view.model.VisualProperty;
+import org.cytoscape.view.presentation.RenderingEngine;
 
 /**
  * Swing component to display overview of the network.
  * 
- * @author $author$
  */
-public class BirdsEyeView extends Component {
+public class BirdsEyeView extends Component implements 
RenderingEngine<CyNetwork> {
 
+       
        private final static long serialVersionUID = 1202416511863994L;
+       
+       private static final Dimension MIN_SIZE = new Dimension(180, 180);
 
        private final double[] m_extents = new double[4];
-       private DGraphView m_view;
+
+       private final DGraphView dgv;
+       
        private final ContentChangeListener m_cLis;
        private final ViewportChangeListener m_vLis;
        private Image m_img = null;
@@ -75,52 +88,54 @@
        private double m_viewXCenter;
        private double m_viewYCenter;
        private double m_viewScaleFactor;
-       
-       private Component m_desktopView;
 
+       private final Component m_desktopView;
+
        /**
         * Creates a new BirdsEyeView object.
         * 
-        * @param view
+        * @param dgv
         *            The view to monitor
-        * @param desktopView
+        * @param container
         *            The desktop area holding the view. This should be
         *            NetworkViewManager.getDesktopPane().
         */
-       public BirdsEyeView(Component desktopView, GraphView view) {
+       public BirdsEyeView(final Component vContainer, final DGraphView dgv) {
                super();
 
+               if (dgv == null)
+                       throw new NullPointerException("DGraphView is null.");
+               if (vContainer == null)
+                       throw new NullPointerException("Container is null.");
+
+               this.dgv = dgv;
+
                m_cLis = new InnerContentChangeListener();
                m_vLis = new InnerViewportChangeListener();
-               m_desktopView = desktopView;
+               m_desktopView = vContainer;
+
                addMouseListener(new InnerMouseListener());
                addMouseMotionListener(new InnerMouseMotionListener());
                setPreferredSize(new Dimension(180, 180));
                setMinimumSize(new Dimension(180, 180));
 
-               setView(view);
+               setView(dgv);
        }
 
-       /**
-        * DOCUMENT ME!
-        * 
-        * @param view
-        *            DOCUMENT ME!
-        */
+       
        private void setView(GraphView view) {
-               // GraphView view = presFactory.getGraphView(cnv);
-               if (view == null)
-                       return;
-               destroy();
-               m_view = (DGraphView) view;
+//             if (view == null)
+//                     return;
+//             destroy();
 
-               m_view.addContentChangeListener(m_cLis);
-               m_view.addViewportChangeListener(m_vLis);
+               dgv.addContentChangeListener(m_cLis);
+               dgv.addViewportChangeListener(m_vLis);
+               
                updateBounds();
-               final Point2D pt = m_view.getCenter();
+               final Point2D pt = dgv.getCenter();
                m_viewXCenter = pt.getX();
                m_viewYCenter = pt.getY();
-               m_viewScaleFactor = m_view.getZoom();
+               m_viewScaleFactor = dgv.getZoom();
                m_contentChanged = true;
 
                repaint();
@@ -137,19 +152,19 @@
        }
 
        private Rectangle2D getViewableRectInView(final Rectangle2D viewable) {
-               if (m_view == null || m_view.getCanvas() == null
-                               || m_view.getCanvas().m_grafx == null)
+               if (dgv == null || dgv.getCanvas() == null
+                               || dgv.getCanvas().m_grafx == null)
                        return new Rectangle2D.Double(0.0, 0.0, 0.0, 0.0);
 
                final double[] origin = new double[2];
                origin[0] = viewable.getX();
                origin[1] = viewable.getY();
-               m_view.xformComponentToNodeCoords(origin);
+               dgv.xformComponentToNodeCoords(origin);
 
                final double[] destination = new double[2];
                destination[0] = viewable.getX() + viewable.getWidth();
                destination[1] = viewable.getY() + viewable.getHeight();
-               m_view.xformComponentToNodeCoords(destination);
+               dgv.xformComponentToNodeCoords(destination);
 
                Rectangle2D result = new Rectangle2D.Double(origin[0], 
origin[1],
                                destination[0] - origin[0], destination[1] - 
origin[1]);
@@ -157,11 +172,11 @@
        }
 
        private Rectangle2D getViewableRect() {
-               if (m_view == null)
+               if (dgv == null)
                        return new Rectangle2D.Double(0.0, 0.0, 0.0, 0.0);
 
                if (m_desktopView == null) {
-                       final Rectangle r = m_view.getComponent().getBounds();
+                       final Rectangle r = dgv.getComponent().getBounds();
                        return new Rectangle2D.Double(r.x, r.y, r.width, 
r.height);
                }
 
@@ -172,9 +187,9 @@
                        desktopRect.y = s.y;
                }
 
-               final Rectangle viewRect = m_view.getComponent().getBounds();
-               if (m_view.getComponent().isShowing()) {
-                       Point s = m_view.getComponent().getLocationOnScreen();
+               final Rectangle viewRect = dgv.getComponent().getBounds();
+               if (dgv.getComponent().isShowing()) {
+                       Point s = dgv.getComponent().getLocationOnScreen();
                        viewRect.x = s.x;
                        viewRect.y = s.y;
                }
@@ -188,17 +203,17 @@
                return viewable;
        }
 
-       /**
-        * DOCUMENT ME!
-        */
-       public void destroy() {
-               if (m_view == null)
-                       return;
+//     /**
+//      * DOCUMENT ME!
+//      */
+//     public void destroy() {
+//             if (dgv == null)
+//                     return;
+//
+//             dgv.removeContentChangeListener(m_cLis);
+//             dgv.removeViewportChangeListener(m_vLis);
+//     }
 
-               m_view.removeContentChangeListener(m_cLis);
-               m_view.removeViewportChangeListener(m_vLis);
-       }
-
        /**
         * This used to be called reshape, which is deprecated, so I've changed 
it
         * to setBounds. Not sure if this will break anything!
@@ -228,7 +243,7 @@
                if (m_img == null)
                        return;
 
-               if (m_view == null) {
+               if (dgv == null) {
                        g.setColor(Color.white);
                        g.fillRect(0, 0, getWidth(), getHeight());
 
@@ -238,7 +253,7 @@
                updateBounds();
 
                if (m_contentChanged) {
-                       if (m_view.getExtents(m_extents)) {
+                       if (dgv.getExtents(m_extents)) {
                                m_myXCenter = (m_extents[0] + m_extents[2]) / 
2.0d;
                                m_myYCenter = (m_extents[1] + m_extents[3]) / 
2.0d;
                                m_myScaleFactor = 0.8d * Math.min(((double) 
getWidth())
@@ -250,8 +265,8 @@
                                m_myScaleFactor = 1.0d;
                        }
 
-                       m_view.drawSnapshot(m_img, m_view.getGraphLOD(),
-                                       m_view.getBackgroundPaint(), 
m_myXCenter, m_myYCenter,
+                       dgv.drawSnapshot(m_img, dgv.getGraphLOD(),
+                                       dgv.getBackgroundPaint(), m_myXCenter, 
m_myYCenter,
                                        m_myScaleFactor);
                        m_contentChanged = false;
                }
@@ -339,6 +354,9 @@
 
        private final class InnerMouseMotionListener implements 
MouseMotionListener {
                public void mouseDragged(MouseEvent e) {
+                       
+                       System.out.println("--------- DRAG");
+                       
                        if (m_currMouseButton == 1) {
                                final int currX = e.getX();
                                final int currY = e.getY();
@@ -349,9 +367,9 @@
                                m_lastXMousePos = currX;
                                m_lastYMousePos = currY;
 
-                               if (m_view != null) {
-                                       final Point2D pt = m_view.getCenter();
-                                       m_view.setCenter(pt.getX() + deltaX, 
pt.getY() + deltaY);
+                               if (dgv != null) {
+                                       final Point2D pt = dgv.getCenter();
+                                       dgv.setCenter(pt.getX() + deltaX, 
pt.getY() + deltaY);
                                }
                        }
                }
@@ -360,7 +378,32 @@
                }
        }
 
-       public Dimension getMinimumSize() {
-               return new Dimension(180, 180);
+       @Override public Dimension getMinimumSize() {
+               return MIN_SIZE;
        }
+
+       @Override
+       public View<CyNetwork> getViewModel() {
+               return dgv.getViewModel();
+       }
+
+       @Override
+       public VisualLexicon getVisualLexicon() {
+               return dgv.getVisualLexicon();
+       }
+
+       @Override
+       public Properties getProperties() {
+               return dgv.getProperties();
+       }
+
+       @Override
+       public Printable createPrintable() {
+               return dgv.createPrintable();
+       }
+
+       @Override
+       public <V> Icon createIcon(VisualProperty<V> vp, V value, int width, 
int height) {
+               return dgv.createIcon(vp, value, width, height);
+       }
 }

Added: 
core3/ding-presentation-impl/trunk/src/main/java/org/cytoscape/ding/impl/CurrentDGVManager.java
===================================================================
--- 
core3/ding-presentation-impl/trunk/src/main/java/org/cytoscape/ding/impl/CurrentDGVManager.java
                             (rev 0)
+++ 
core3/ding-presentation-impl/trunk/src/main/java/org/cytoscape/ding/impl/CurrentDGVManager.java
     2010-12-29 00:46:12 UTC (rev 23273)
@@ -0,0 +1,20 @@
+package org.cytoscape.ding.impl;
+
+
+/**
+ * Manages shared instance of current DGraphView object.
+ * 
+ *
+ */
+public class CurrentDGVManager {
+       
+       private DGraphView currentDGV;
+
+       public void setCurrentDGV(final DGraphView dgv) {
+               this.currentDGV = dgv;
+       }
+       
+       public DGraphView getCurrentDGV() {
+               return this.currentDGV;
+       }
+}

Modified: 
core3/ding-presentation-impl/trunk/src/main/java/org/cytoscape/ding/impl/DingNavigationRenderingEngine.java
===================================================================
--- 
core3/ding-presentation-impl/trunk/src/main/java/org/cytoscape/ding/impl/DingNavigationRenderingEngine.java
 2010-12-28 23:44:07 UTC (rev 23272)
+++ 
core3/ding-presentation-impl/trunk/src/main/java/org/cytoscape/ding/impl/DingNavigationRenderingEngine.java
 2010-12-29 00:46:12 UTC (rev 23273)
@@ -1,5 +1,6 @@
 package org.cytoscape.ding.impl;
 
+import java.awt.Component;
 import java.awt.Image;
 import java.awt.print.Printable;
 import java.util.Properties;
@@ -14,19 +15,20 @@
 
 /**
  * Wrapper for Navigation View
- * 
- * @author kono
  *
  */
 public class DingNavigationRenderingEngine implements 
RenderingEngine<CyNetwork> {
        
-       private final DGraphView dgv;
-       
+       private final DGraphView dgv;   
        private final Properties props;
        
-       public DingNavigationRenderingEngine(final DGraphView dgv) {
+       private final BirdsEyeView bev;
+       
+       public DingNavigationRenderingEngine(final Component container, final 
DGraphView dgv) {
                this.dgv = dgv;
                this.props = new Properties();
+               
+               bev = new BirdsEyeView(container, dgv);
        }
        
 
@@ -49,8 +51,7 @@
 
        @Override
        public Printable createPrintable() {
-               // TODO Auto-generated method stub
-               return null;
+               return dgv.createPrintable();
        }
 
        @Override

Modified: 
core3/ding-presentation-impl/trunk/src/main/java/org/cytoscape/ding/impl/DingNavigationRenderingEngineFactory.java
===================================================================
--- 
core3/ding-presentation-impl/trunk/src/main/java/org/cytoscape/ding/impl/DingNavigationRenderingEngineFactory.java
  2010-12-28 23:44:07 UTC (rev 23272)
+++ 
core3/ding-presentation-impl/trunk/src/main/java/org/cytoscape/ding/impl/DingNavigationRenderingEngineFactory.java
  2010-12-29 00:46:12 UTC (rev 23273)
@@ -1,14 +1,20 @@
 package org.cytoscape.ding.impl;
 
 
+import java.awt.BorderLayout;
+import java.awt.Component;
 import java.util.HashMap;
 import java.util.Map;
 
+import javax.swing.JComponent;
+import javax.swing.JPanel;
+
 import org.cytoscape.model.CyNetwork;
 import org.cytoscape.model.CyTableFactory;
 import org.cytoscape.model.CyTableManager;
 import org.cytoscape.model.subnetwork.CyRootNetworkFactory;
 import org.cytoscape.service.util.CyServiceRegistrar;
+import org.cytoscape.session.CyApplicationManager;
 import org.cytoscape.spacial.SpacialIndex2DFactory;
 import org.cytoscape.task.EdgeViewTaskFactory;
 import org.cytoscape.task.NetworkViewTaskFactory;
@@ -56,13 +62,17 @@
 
        private TaskManager tm;
        private CyTableManager tableMgr;
+       
+       private final CyApplicationManager appManager;
 
        public DingNavigationRenderingEngineFactory(
                        CyTableFactory dataTableFactory,
                        CyRootNetworkFactory rootNetworkFactory, UndoSupport 
undo,
                        SpacialIndex2DFactory spacialFactory,
                        VisualLexicon dingLexicon, TaskManager tm,
-                       CyServiceRegistrar registrar, CyTableManager tableMgr, 
RenderingEngineManager renderingEngineManager) {
+                       CyServiceRegistrar registrar, CyTableManager tableMgr, 
RenderingEngineManager renderingEngineManager,
+                       CyApplicationManager appManager
+       ) {
 
                this.dataTableFactory = dataTableFactory;
                this.rootNetworkFactory = rootNetworkFactory;
@@ -73,6 +83,7 @@
                this.registrar = registrar;
                this.tableMgr = tableMgr;
                this.renderingEngineManager = renderingEngineManager;
+               this.appManager = appManager;
 
                viewMap = new HashMap<CyNetworkView, DGraphView>();
                nodeViewTFs = new HashMap<NodeViewTaskFactory, Map>();
@@ -83,33 +94,31 @@
        
        @Override public RenderingEngine<CyNetwork> getInstance(final Object 
visualizationContainer, final View<CyNetwork> view) {
 
-//             if (visualizationContainer == null)
-//                     throw new IllegalArgumentException(
-//                                     "Visualization container is null.  This 
should be an JComponent for this rendering engine.");
-//             if (view == null)
-//                     throw new IllegalArgumentException(
-//                                     "View Model is null.");
-//
-//             if (!(visualizationContainer instanceof JComponent)
-//                             || !(view instanceof CyNetworkView))
-//                     throw new IllegalArgumentException(
-//                                     "Visualization Container object is not 
of type Component, "
-//                                                     + "which is invalid for 
this implementation of PresentationFactory");
-//
-//             final DGraphView dgv = new DGraphView((CyNetworkView) view,
-//                             dataTableFactory, rootNetworkFactory, undo, 
spacialFactory,
-//                             rootLexicon, dingLexicon, nodeViewTFs, 
edgeViewTFs,
-//                             emptySpaceTFs, ti, tm, registrar, tableMgr);
-//             
-//             logger.info("DGV created for navigation: View ID = " + 
view.getSUID());
-//
-//             JPanel target = new JPanel();
-//             BirdsEyeView bev = new BirdsEyeView((Component) 
visualizationContainer,
-//                             dgv);
-//             target.add(bev);
+               if (visualizationContainer == null)
+                       throw new IllegalArgumentException(
+                                       "Visualization container is null.  This 
should be an JComponent for this rendering engine.");
+               if (view == null)
+                       throw new IllegalArgumentException(
+                                       "View Model is null.");
 
-               DingNavigationRenderingEngine bev = new 
DingNavigationRenderingEngine(null);
-               // Register engine to manager
+               if (!(visualizationContainer instanceof JComponent)
+                               || !(view instanceof CyNetworkView))
+                       throw new IllegalArgumentException(
+                                       "Visualization Container object is not 
of type Component, "
+                                                       + "which is invalid for 
this implementation of PresentationFactory");
+               
+               final JComponent container = (JComponent) 
visualizationContainer;
+
+               final RenderingEngine<CyNetwork> engine = 
appManager.getCurrentRenderingEngine();
+               
+               logger.info("!!!! DGV created for navigation: View ID = " + 
view.getSUID());
+
+
+               final BirdsEyeView bev = new BirdsEyeView(container, 
(DGraphView) engine);
+               
+               container.setLayout(new BorderLayout());
+               container.add(bev, BorderLayout.CENTER);
+               
                this.renderingEngineManager.addRenderingEngine(bev);
                return bev;
 

Modified: 
core3/ding-presentation-impl/trunk/src/main/java/org/cytoscape/ding/impl/DingRenderingEngineFactory.java
===================================================================
--- 
core3/ding-presentation-impl/trunk/src/main/java/org/cytoscape/ding/impl/DingRenderingEngineFactory.java
    2010-12-28 23:44:07 UTC (rev 23272)
+++ 
core3/ding-presentation-impl/trunk/src/main/java/org/cytoscape/ding/impl/DingRenderingEngineFactory.java
    2010-12-29 00:46:12 UTC (rev 23273)
@@ -1,16 +1,15 @@
 package org.cytoscape.ding.impl;
 
-
 import java.awt.BorderLayout;
 import java.util.HashMap;
 import java.util.Map;
 import java.util.Properties;
 
 import javax.swing.JComponent;
-import javax.swing.JDesktopPane;
 import javax.swing.JInternalFrame;
-import javax.swing.JLayeredPane;
 
+import org.cytoscape.dnd.DropNetworkViewTaskFactory;
+import org.cytoscape.dnd.DropNodeViewTaskFactory;
 import org.cytoscape.event.CyEventHelper;
 import org.cytoscape.model.CyNetwork;
 import org.cytoscape.model.CyTableFactory;
@@ -21,8 +20,6 @@
 import org.cytoscape.task.EdgeViewTaskFactory;
 import org.cytoscape.task.NetworkViewTaskFactory;
 import org.cytoscape.task.NodeViewTaskFactory;
-import org.cytoscape.dnd.DropNetworkViewTaskFactory;
-import org.cytoscape.dnd.DropNodeViewTaskFactory;
 import org.cytoscape.view.model.CyNetworkView;
 import org.cytoscape.view.model.View;
 import org.cytoscape.view.model.VisualLexicon;
@@ -38,24 +35,22 @@
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-
 public class DingRenderingEngineFactory implements
-               RenderingEngineFactory<CyNetwork>, 
UpdateNetworkPresentationEventListener {
+               RenderingEngineFactory<CyNetwork>,
+               UpdateNetworkPresentationEventListener {
 
-       private static final Logger logger = LoggerFactory
-                       .getLogger(DingRenderingEngineFactory.class);
+       private static final Logger logger = 
LoggerFactory.getLogger(DingRenderingEngineFactory.class);
+
+       private final RenderingEngineManager renderingEngineManager;
+       private final CyTableFactory dataTableFactory;
+       private final CyRootNetworkFactory rootNetworkFactory;
+       private final SpacialIndex2DFactory spacialFactory;
+       private final UndoSupport undo;
+       private final VisualLexicon dingLexicon;
+       private final CyServiceRegistrar registrar;
        
-       final RenderingEngineManager renderingEngineManager;
+       private final Map<CyNetworkView, DGraphView> viewMap;
 
-       private CyTableFactory dataTableFactory;
-       private CyRootNetworkFactory rootNetworkFactory;
-       private SpacialIndex2DFactory spacialFactory;
-       private UndoSupport undo;
-       private VisualLexicon dingLexicon;
-       private CyServiceRegistrar registrar;
-
-       private Map<CyNetworkView, DGraphView> viewMap;
-
        private Map<NodeViewTaskFactory, Map> nodeViewTFs;
        private Map<EdgeViewTaskFactory, Map> edgeViewTFs;
        private Map<NetworkViewTaskFactory, Map> emptySpaceTFs;
@@ -65,13 +60,15 @@
        private TaskManager tm;
        private final CyTableManager tableMgr;
        private final CyEventHelper eventHelper;
-
-       public DingRenderingEngineFactory(
-                       CyTableFactory dataTableFactory,
+       
+       
+       public DingRenderingEngineFactory(CyTableFactory dataTableFactory,
                        CyRootNetworkFactory rootNetworkFactory, UndoSupport 
undo,
                        SpacialIndex2DFactory spacialFactory, VisualLexicon 
dingLexicon,
                        TaskManager tm, CyServiceRegistrar registrar,
-                       CyTableManager tableMgr, CyEventHelper eventHelper, 
RenderingEngineManager renderingEngineManager) {
+                       CyTableManager tableMgr, CyEventHelper eventHelper,
+                       RenderingEngineManager renderingEngineManager) {
+               
                this.dataTableFactory = dataTableFactory;
                this.rootNetworkFactory = rootNetworkFactory;
                this.spacialFactory = spacialFactory;
@@ -95,14 +92,14 @@
         * Render given view model by Ding rendering engine.
         * 
         */
-       @Override public RenderingEngine<CyNetwork> getInstance(final Object 
presentationContainer,
-                       View<CyNetwork> view) {
+       @Override
+       public RenderingEngine<CyNetwork> getInstance(
+                       final Object presentationContainer, final 
View<CyNetwork> view) {
 
                // Validate arguments
                if (presentationContainer == null)
-                       throw new IllegalArgumentException(
-                                       "Container is null.");
-               
+                       throw new IllegalArgumentException("Container is 
null.");
+
                if (view == null)
                        throw new IllegalArgumentException(
                                        "Cannot create presentation for null 
view model.");
@@ -112,30 +109,30 @@
                                        "Ding accepts CyNetworkView only.");
 
                final CyNetworkView targetView = (CyNetworkView) view;
-               
+
                DGraphView dgv = null;
                if (presentationContainer instanceof JComponent) {
 
                        logger.debug("Start rendering presentation by Ding: "
                                        + targetView.getSUID());
-                       
+
                        dgv = new DGraphView(targetView, dataTableFactory,
                                        rootNetworkFactory, undo, 
spacialFactory, dingLexicon,
                                        nodeViewTFs, edgeViewTFs, 
emptySpaceTFs, dropNodeViewTFs,
-                                       dropEmptySpaceTFs, tm, eventHelper,
-                                       tableMgr);
-                       
+                                       dropEmptySpaceTFs, tm, eventHelper, 
tableMgr);
+
                        logger.info("DGraphView created as a presentation for 
view model: "
                                        + targetView.getSUID());
                        viewMap.put(targetView, dgv);
 
                        if (presentationContainer instanceof JInternalFrame) {
                                final JInternalFrame inFrame = (JInternalFrame) 
presentationContainer;
-                               JDesktopPane desktopPane = 
inFrame.getDesktopPane();
+                               //JDesktopPane desktopPane = 
inFrame.getDesktopPane();
 
                                // TODO - not sure this layered pane bit is 
optimal
-                               
inFrame.setContentPane(dgv.getContainer(inFrame.getLayeredPane()));
-                       //      dgv.addTransferComponent(desktopPane);
+                               inFrame.setContentPane(dgv.getContainer(inFrame
+                                               .getLayeredPane()));
+                               // dgv.addTransferComponent(desktopPane);
                        } else {
                                final JComponent component = (JComponent) 
presentationContainer;
                                component.setLayout(new BorderLayout());
@@ -150,12 +147,14 @@
                registrar.registerAllServices(dgv, new Properties());
                final AddDeleteHandler addDeleteHandler = new 
AddDeleteHandler(dgv);
                registrar.registerAllServices(addDeleteHandler, new 
Properties());
-               eventHelper.addMicroListener(addDeleteHandler, 
AboutToRemoveEdgeViewMicroListener.class, view);
-               eventHelper.addMicroListener(addDeleteHandler, 
AboutToRemoveNodeViewMicroListener.class, view);
-               
+               eventHelper.addMicroListener(addDeleteHandler,
+                               AboutToRemoveEdgeViewMicroListener.class, view);
+               eventHelper.addMicroListener(addDeleteHandler,
+                               AboutToRemoveNodeViewMicroListener.class, view);
+
                // Register engine to manager
                this.renderingEngineManager.addRenderingEngine(dgv);
-               
+
                return dgv;
        }
 
@@ -212,35 +211,40 @@
                emptySpaceTFs.put(evtf, props);
        }
 
-       public void removeNetworkViewTaskFactory(NetworkViewTaskFactory evtf, 
Map props) {
+       public void removeNetworkViewTaskFactory(NetworkViewTaskFactory evtf,
+                       Map props) {
                if (evtf == null)
                        return;
 
                emptySpaceTFs.remove(evtf);
        }
 
-       public void addDropNetworkViewTaskFactory(DropNetworkViewTaskFactory 
evtf, Map props) {
+       public void addDropNetworkViewTaskFactory(DropNetworkViewTaskFactory 
evtf,
+                       Map props) {
                if (evtf == null)
                        return;
 
                dropEmptySpaceTFs.put(evtf, props);
        }
 
-       public void removeDropNetworkViewTaskFactory(DropNetworkViewTaskFactory 
evtf, Map props) {
+       public void removeDropNetworkViewTaskFactory(
+                       DropNetworkViewTaskFactory evtf, Map props) {
                if (evtf == null)
                        return;
 
                dropEmptySpaceTFs.remove(evtf);
        }
 
-       public void addDropNodeViewTaskFactory(DropNodeViewTaskFactory nvtf, 
Map props) {
+       public void addDropNodeViewTaskFactory(DropNodeViewTaskFactory nvtf,
+                       Map props) {
                if (nvtf == null)
                        return;
 
                dropNodeViewTFs.put(nvtf, props);
        }
 
-       public void removeDropNodeViewTaskFactory(DropNodeViewTaskFactory nvtf, 
Map props) {
+       public void removeDropNodeViewTaskFactory(DropNodeViewTaskFactory nvtf,
+                       Map props) {
                if (nvtf == null)
                        return;
 

Modified: 
core3/ding-presentation-impl/trunk/src/main/java/org/cytoscape/ding/impl/InnerCanvas.java
===================================================================
--- 
core3/ding-presentation-impl/trunk/src/main/java/org/cytoscape/ding/impl/InnerCanvas.java
   2010-12-28 23:44:07 UTC (rev 23272)
+++ 
core3/ding-presentation-impl/trunk/src/main/java/org/cytoscape/ding/impl/InnerCanvas.java
   2010-12-29 00:46:12 UTC (rev 23273)
@@ -198,11 +198,8 @@
                }
        }
 
-       /**
-        * DOCUMENT ME!
-        *
-        * @param g DOCUMENT ME!
-        */
+       
+       
        public void update(Graphics g) {
                if (m_grafx == null)
                        return;

Modified: 
core3/ding-presentation-impl/trunk/src/main/resources/META-INF/spring/bundle-context-osgi.xml
===================================================================
--- 
core3/ding-presentation-impl/trunk/src/main/resources/META-INF/spring/bundle-context-osgi.xml
       2010-12-28 23:44:07 UTC (rev 23272)
+++ 
core3/ding-presentation-impl/trunk/src/main/resources/META-INF/spring/bundle-context-osgi.xml
       2010-12-29 00:46:12 UTC (rev 23273)
@@ -6,6 +6,10 @@
        default-lazy-init="false">
 
 
+       <osgi:reference id="applicationManagerManagerServiceRef"
+               interface="org.cytoscape.session.CyApplicationManager">
+       </osgi:reference>
+       
        <osgi:reference id="customGraphicsManagerServiceRef"
                
interface="org.cytoscape.ding.customgraphics.CustomGraphicsManager">
        </osgi:reference>
@@ -13,7 +17,7 @@
        <osgi:reference id="renderingEngineManagerServiceRef"
                
interface="org.cytoscape.view.presentation.RenderingEngineManager">
        </osgi:reference>
-       
+
        <osgi:reference id="cyRootNetworkFactoryServiceRef"
                interface="org.cytoscape.model.subnetwork.CyRootNetworkFactory">
        </osgi:reference>
@@ -36,8 +40,7 @@
                interface="org.cytoscape.service.util.CyServiceRegistrar">
        </osgi:reference>
 
-       <osgi:reference id="cyTableManagerServiceRef"
-               interface="org.cytoscape.model.CyTableManager">
+       <osgi:reference id="cyTableManagerServiceRef" 
interface="org.cytoscape.model.CyTableManager">
        </osgi:reference>
 
        <osgi:reference id="cyNetworkManagerServiceRef"
@@ -45,15 +48,15 @@
        </osgi:reference>
 
 
-       <osgi:reference id="cyEventHelperServiceRef"
-               interface="org.cytoscape.event.CyEventHelper">
+       <osgi:reference id="cyEventHelperServiceRef" 
interface="org.cytoscape.event.CyEventHelper">
        </osgi:reference>
-       
+
        <!-- Individual Service -->
        <osgi:service id="dingRenderingEngineFactoryService" 
ref="dingRenderingEngineFactory">
                <osgi:interfaces>
                        
<value>org.cytoscape.view.presentation.RenderingEngineFactory</value>
-                       
<value>org.cytoscape.view.model.events.UpdateNetworkPresentationEventListener</value>
+                       
<value>org.cytoscape.view.model.events.UpdateNetworkPresentationEventListener
+                       </value>
                </osgi:interfaces>
                <osgi:service-properties>
                        <entry key="serviceType" value="presentationFactory" />
@@ -61,10 +64,12 @@
                </osgi:service-properties>
        </osgi:service>
 
-       <osgi:service id="dingNavigationRenderingEngineFactoryService" 
ref="dingNavigationRenderingEngineFactory">
+       <osgi:service id="dingNavigationRenderingEngineFactoryService"
+               ref="dingNavigationRenderingEngineFactory">
                <osgi:interfaces>
                        
<value>org.cytoscape.view.presentation.RenderingEngineFactory</value>
-                       
<value>org.cytoscape.view.model.events.UpdateNetworkPresentationEventListener</value>
+                       
<value>org.cytoscape.view.model.events.UpdateNetworkPresentationEventListener
+                       </value>
                </osgi:interfaces>
                <osgi:service-properties>
                        <entry key="serviceType" value="presentationFactory" />
@@ -118,8 +123,10 @@
                <osgi:listener bind-method="addDropNetworkViewTaskFactory"
                        unbind-method="removeDropNetworkViewTaskFactory" 
ref="dingRenderingEngineFactory" />
        </osgi:set>
-       
-       <osgi:service id="objectPositionValueEditorService" 
ref="objectPositionValueEditor" auto-export="interfaces" />
-       <osgi:service id="objectPositionPropertyEditorService" 
ref="objectPositionEditor" auto-export="interfaces" />
 
+       <osgi:service id="objectPositionValueEditorService" 
ref="objectPositionValueEditor"
+               auto-export="interfaces" />
+       <osgi:service id="objectPositionPropertyEditorService"
+               ref="objectPositionEditor" auto-export="interfaces" />
+
 </beans>

Modified: 
core3/ding-presentation-impl/trunk/src/main/resources/META-INF/spring/bundle-context.xml
===================================================================
--- 
core3/ding-presentation-impl/trunk/src/main/resources/META-INF/spring/bundle-context.xml
    2010-12-28 23:44:07 UTC (rev 23272)
+++ 
core3/ding-presentation-impl/trunk/src/main/resources/META-INF/spring/bundle-context.xml
    2010-12-29 00:46:12 UTC (rev 23273)
@@ -17,7 +17,6 @@
             http://www.springframework.org/schema/osgi 
http://www.springframework.org/schema/osgi/spring-osgi-1.0.xsd";
        default-lazy-init="false">
 
-       <import resource="bundle-context-osgi.xml" />
 
        <context:annotation-config />
 
@@ -49,6 +48,7 @@
                <constructor-arg ref="cyServiceRegistrarRef" />
                <constructor-arg ref="cyTableManagerServiceRef" />
                <constructor-arg ref="renderingEngineManagerServiceRef" />
+               <constructor-arg ref="applicationManagerManagerServiceRef" />
        </bean>
 
        <bean id="addEdgeNodeViewTaskFactory" 
class="org.cytoscape.ding.impl.AddEdgeNodeViewTaskFactoryImpl">

Modified: 
core3/io-impl/trunk/src/main/java/org/cytoscape/io/internal/write/graphics/BitmapWriterFactory.java
===================================================================
--- 
core3/io-impl/trunk/src/main/java/org/cytoscape/io/internal/write/graphics/BitmapWriterFactory.java
 2010-12-28 23:44:07 UTC (rev 23272)
+++ 
core3/io-impl/trunk/src/main/java/org/cytoscape/io/internal/write/graphics/BitmapWriterFactory.java
 2010-12-29 00:46:12 UTC (rev 23273)
@@ -18,7 +18,7 @@
        private final CyFileFilter bitmapFilter; 
 
        private View<?> view;
-       private RenderingEngine re;
+       private RenderingEngine<?> re;
        private OutputStream outputStream;
 
        public BitmapWriterFactory(CyFileFilter bitmapFilter) {

Added: 
core3/session-api/trunk/src/main/java/org/cytoscape/session/events/SetCurrentRenderingEngineEvent.java
===================================================================
--- 
core3/session-api/trunk/src/main/java/org/cytoscape/session/events/SetCurrentRenderingEngineEvent.java
                              (rev 0)
+++ 
core3/session-api/trunk/src/main/java/org/cytoscape/session/events/SetCurrentRenderingEngineEvent.java
      2010-12-29 00:46:12 UTC (rev 23273)
@@ -0,0 +1,29 @@
+package org.cytoscape.session.events;
+
+import org.cytoscape.event.AbstractCyEvent;
+import org.cytoscape.model.CyNetwork;
+import org.cytoscape.session.CyApplicationManager;
+import org.cytoscape.view.presentation.RenderingEngine;
+
+public final class SetCurrentRenderingEngineEvent extends
+               AbstractCyEvent<CyApplicationManager>{
+       
+       private final RenderingEngine<CyNetwork> engine;
+
+       /**
+        * Constructor.
+        * 
+        * @param source
+        *            The application manager firing this event.
+        * @param engine
+        *            The rendering engine (presentation) that has been set as 
current.
+        */
+       public SetCurrentRenderingEngineEvent(final CyApplicationManager 
source, final RenderingEngine<CyNetwork> engine) {
+               super(source, SetCurrentRenderingEngineListener.class);
+               this.engine = engine;
+       }
+       
+       public RenderingEngine<CyNetwork> getRenderingEngine() {
+               return this.engine;
+       }
+}
\ No newline at end of file

Added: 
core3/session-api/trunk/src/main/java/org/cytoscape/session/events/SetCurrentRenderingEngineListener.java
===================================================================
--- 
core3/session-api/trunk/src/main/java/org/cytoscape/session/events/SetCurrentRenderingEngineListener.java
                           (rev 0)
+++ 
core3/session-api/trunk/src/main/java/org/cytoscape/session/events/SetCurrentRenderingEngineListener.java
   2010-12-29 00:46:12 UTC (rev 23273)
@@ -0,0 +1,13 @@
+package org.cytoscape.session.events;
+
+import org.cytoscape.event.CyListener;
+
+public interface SetCurrentRenderingEngineListener extends CyListener {
+       /**
+        * Processes the specified event when fired.
+        * 
+        * @param e
+        *            The event that the listener is listening for.
+        */
+       public void handleEvent(final SetCurrentRenderingEngineEvent e);
+}

Modified: 
core3/session-impl/trunk/src/main/java/org/cytoscape/session/internal/CyApplicationManagerImpl.java
===================================================================
--- 
core3/session-impl/trunk/src/main/java/org/cytoscape/session/internal/CyApplicationManagerImpl.java
 2010-12-28 23:44:07 UTC (rev 23272)
+++ 
core3/session-impl/trunk/src/main/java/org/cytoscape/session/internal/CyApplicationManagerImpl.java
 2010-12-29 00:46:12 UTC (rev 23273)
@@ -49,6 +49,7 @@
 import org.cytoscape.session.CyApplicationManager;
 import org.cytoscape.session.events.SetCurrentNetworkEvent;
 import org.cytoscape.session.events.SetCurrentNetworkViewEvent;
+import org.cytoscape.session.events.SetCurrentRenderingEngineEvent;
 import org.cytoscape.session.events.SetSelectedNetworkViewsEvent;
 import org.cytoscape.session.events.SetSelectedNetworksEvent;
 
@@ -270,6 +271,10 @@
 
        
        public void setCurrentRenderingEngine(RenderingEngine<CyNetwork> 
engine) {
-               this.currentRenderer = engine;          
+               this.currentRenderer = engine;
+               
+               cyEventHelper.fireSynchronousEvent(
+                               new SetCurrentRenderingEngineEvent(this, 
this.currentRenderer));
+               
        }
 }

Modified: 
core3/swing-application-impl/trunk/src/main/java/org/cytoscape/internal/view/BirdsEyeViewHandler.java
===================================================================
--- 
core3/swing-application-impl/trunk/src/main/java/org/cytoscape/internal/view/BirdsEyeViewHandler.java
       2010-12-28 23:44:07 UTC (rev 23272)
+++ 
core3/swing-application-impl/trunk/src/main/java/org/cytoscape/internal/view/BirdsEyeViewHandler.java
       2010-12-29 00:46:12 UTC (rev 23273)
@@ -43,8 +43,6 @@
 import java.awt.event.ComponentAdapter;
 import java.awt.event.ComponentEvent;
 import java.awt.event.ComponentListener;
-import java.util.HashMap;
-import java.util.Map;
 
 import javax.swing.JDesktopPane;
 import javax.swing.JInternalFrame;
@@ -53,9 +51,8 @@
 import org.cytoscape.model.CyNetwork;
 import org.cytoscape.session.CyApplicationManager;
 import org.cytoscape.session.events.SetCurrentNetworkEvent;
-import org.cytoscape.session.events.SetCurrentNetworkListener;
-import org.cytoscape.session.events.SetCurrentNetworkViewEvent;
-import org.cytoscape.session.events.SetCurrentNetworkViewListener;
+import org.cytoscape.session.events.SetCurrentRenderingEngineEvent;
+import org.cytoscape.session.events.SetCurrentRenderingEngineListener;
 import org.cytoscape.view.model.CyNetworkView;
 import org.cytoscape.view.model.CyNetworkViewManager;
 import org.cytoscape.view.model.events.NetworkViewDestroyedEvent;
@@ -69,23 +66,25 @@
  * This class handles the creation of the BirdsEyeView navigation object and
  * handles the events which change view seen.
  */
-public class BirdsEyeViewHandler implements SetCurrentNetworkListener,
-               SetCurrentNetworkViewListener, NetworkViewDestroyedListener {
+public class BirdsEyeViewHandler implements SetCurrentRenderingEngineListener,
+               NetworkViewDestroyedListener {
 
-       private static final Logger logger = LoggerFactory
-                       .getLogger(BirdsEyeViewHandler.class);
+       private static final Logger logger = 
LoggerFactory.getLogger(BirdsEyeViewHandler.class);
+       
+       private static final Dimension DEF_PANEL_SIZE = new Dimension(280, 280);
+       private static final Color DEF_BACKGROUND_COLOR = Color.WHITE;
 
        // BEV is just a special implementation of RenderingEngine.
        private final RenderingEngineFactory<CyNetwork> bevFactory;
 
-       private final Map<CyNetworkView, RenderingEngine<CyNetworkView>> 
engineMap;
+       private FrameListener frameListener = new FrameListener();
+       
+       private final NetworkViewManager networkViewManager;
 
-       FrameListener frameListener = new FrameListener();
-       final NetworkViewManager viewmgr;
-       final CyApplicationManager appMgr;
-       final CyNetworkViewManager netViewMgr;
 
-       final Container bevPanel;
+       private final Container bevPanel;
+       
+       private RenderingEngine<CyNetwork> engine;
 
        /**
         * Creates a new BirdsEyeViewHandler object.
@@ -94,84 +93,80 @@
         *            The JDesktopPane of the NetworkViewManager. Can be null.
         */
        public BirdsEyeViewHandler(final NetworkViewManager viewmgr,
-                       final CyApplicationManager appMgr, CyNetworkViewManager 
netViewMgr,
-                       RenderingEngineFactory<CyNetwork> defaultFactory) {
-               this.viewmgr = viewmgr;
-               this.appMgr = appMgr;
-               this.netViewMgr = netViewMgr;
+                       final RenderingEngineFactory<CyNetwork> defaultFactory) 
{
+               
+               this.networkViewManager = viewmgr;
 
+               this.bevPanel = new JPanel();
+               this.bevPanel.setPreferredSize(DEF_PANEL_SIZE);
+               this.bevPanel.setSize(DEF_PANEL_SIZE);
+               this.bevPanel.setBackground(DEF_BACKGROUND_COLOR);
+
+               this.bevFactory = defaultFactory;
+               
                final JDesktopPane desktopPane = viewmgr.getDesktopPane();
-               bevPanel = new JPanel();
-               Dimension panelSize = new Dimension(280, 280);
-               bevPanel.setPreferredSize(panelSize);
-               bevPanel.setSize(panelSize);
-               bevPanel.setBackground(Color.white);
-
-               engineMap = new HashMap<CyNetworkView, 
RenderingEngine<CyNetworkView>>();
-
-               bevFactory = defaultFactory;
                desktopPane.addComponentListener(new DesktopListener());
        }
 
-       /**
-        * Listens for NETWORK_VIEW_FOCUSED, NETWORK_VIEW_FOCUS,
-        * NETWORK_VIEW_DESTROYED, and CYTOSCAPE_INITIALIZED events and changes 
the
-        * network view accordingly.
-        * 
-        * @param e
-        *            The event triggering this method.
-        */
-       public void handleEvent(SetCurrentNetworkEvent e) {
-               // This is guaranteed not to be null.
-               final CyNetwork network = e.getNetwork();
-               
-               logger.debug("Got SetCurrentNetworkEvent.  BEV New Network = "
-                               + network.getSUID());
-               bevPanel.removeAll();
+//     /**
+//      * Listens for NETWORK_VIEW_FOCUSED, NETWORK_VIEW_FOCUS,
+//      * NETWORK_VIEW_DESTROYED, and CYTOSCAPE_INITIALIZED events and changes 
the
+//      * network view accordingly.
+//      * 
+//      * @param e
+//      *            The event triggering this method.
+//      */
+//     public void handleEvent(SetCurrentNetworkEvent e) {
+//             // This is guaranteed not to be null.
+//             final CyNetwork network = e.getNetwork();
+//
+//             logger.debug("################ Got SetCurrentNetworkEvent.  BEV 
New Network = "
+//                             + network.getSUID());
+//             bevPanel.removeAll();
+//
+//             // final CyNetworkView view =
+//             // netViewMgr.getNetworkView(network.getSUID());
+//             // if(view != null) {
+//             // RenderingEngine<CyNetwork> engine = 
bevFactory.render(bevPanel,
+//             // netViewMgr.getNetworkView(network.getSUID()));
+//             // setFocus();
+//             // } else {
+//             // logger.warn("######### NO View exists for network = "
+//             // + network);
+//             // }
+//     }
 
-//             final CyNetworkView view = 
netViewMgr.getNetworkView(network.getSUID());
-//             if(view != null) {
-//                     RenderingEngine<CyNetwork> engine = 
bevFactory.render(bevPanel,
-//                                     
netViewMgr.getNetworkView(network.getSUID()));
+//     public void handleEvent(SetCurrentNetworkViewEvent e) {
+//             final CyNetworkView view = e.getNetworkView();
+//
+//             logger.debug("Got SetCurrentNetworkViewEvent.  BEV New Network 
= "
+//                             + view.getModel().getSUID());
+//
+//             if (view != null) {
+//                     RenderingEngine<CyNetwork> engine = 
bevFactory.getInstance(
+//                                     bevPanel, view);
 //                     setFocus();
 //             } else {
-//                     logger.warn("######### NO View exists for network = "
-//                                     + network);
-//             }
-       }
-
-       public void handleEvent(SetCurrentNetworkViewEvent e) {
-               final CyNetworkView view = e.getNetworkView();
-               
-               logger.debug("Got SetCurrentNetworkViewEvent.  BEV New Network 
= "
-                               + view.getModel().getSUID());
-               
-//             if(view != null) {
-//                     RenderingEngine<CyNetwork> engine = 
bevFactory.render(bevPanel,
-//                                     view);
-//                     setFocus();
-//             } else {
 //                     logger.warn("######### NO View exists in the source");
 //             }
-//             
-       }
+//
+//     }
 
-       public void handleEvent(NetworkViewDestroyedEvent e) {
-//             logger.debug("!!!!!!!!!! NetworkViewDestroyedEvent 
+++++++++++");
-//             // Cleanup the visualization container
-//             bevPanel.removeAll();
-//             RenderingEngine<CyNetwork> engine = bevFactory.render(bevPanel,
-//                             appMgr.getCurrentNetworkView());
+       
+       @Override public void handleEvent(NetworkViewDestroyedEvent e) {
+               // logger.debug("!!!!!!!!!! NetworkViewDestroyedEvent 
+++++++++++");
+               // // Cleanup the visualization container
+               // bevPanel.removeAll();
+               // RenderingEngine<CyNetwork> engine = 
bevFactory.render(bevPanel,
+               // appMgr.getCurrentNetworkView());
        }
 
-
-
        private void setFocus() {
-               JDesktopPane desktopPane = viewmgr.getDesktopPane();
+               final JDesktopPane desktopPane = 
networkViewManager.getDesktopPane();
                if (desktopPane == null)
                        return;
 
-               JInternalFrame frame = desktopPane.getSelectedFrame();
+               final JInternalFrame frame = desktopPane.getSelectedFrame();
                if (frame == null)
                        return;
 
@@ -199,6 +194,8 @@
         */
        class FrameListener extends ComponentAdapter {
                public void componentMoved(ComponentEvent e) {
+                       logger.debug("!!!!! Update called: moved");
+                       ((CyNetworkView)engine.getViewModel()).updateView();
                        bevPanel.repaint();
                }
        }
@@ -208,7 +205,23 @@
         */
        class DesktopListener extends ComponentAdapter {
                public void componentResized(ComponentEvent e) {
+                       logger.debug("!!!!! Update called: resize");
+                       ((CyNetworkView)engine.getViewModel()).updateView();
                        bevPanel.repaint();
                }
        }
+
+       @Override
+       public void handleEvent(final SetCurrentRenderingEngineEvent e) {
+               this.engine = e.getRenderingEngine();
+
+               logger.debug("!!!!!!!!!!!Got SetCurrentRenderingEngineEvent.  
BEV New Network = "
+                               + engine.getViewModel().getSUID());
+
+               bevPanel.removeAll();
+               bevFactory.getInstance(bevPanel, engine.getViewModel());
+               setFocus();
+               bevPanel.repaint();
+
+       }
 }

Modified: 
core3/swing-application-impl/trunk/src/main/java/org/cytoscape/internal/view/NetworkViewManager.java
===================================================================
--- 
core3/swing-application-impl/trunk/src/main/java/org/cytoscape/internal/view/NetworkViewManager.java
        2010-12-28 23:44:07 UTC (rev 23272)
+++ 
core3/swing-application-impl/trunk/src/main/java/org/cytoscape/internal/view/NetworkViewManager.java
        2010-12-29 00:46:12 UTC (rev 23273)
@@ -216,16 +216,22 @@
                }
        }
 
+       
        /**
-        * Fire Events when a Managed Network View gets the Focus.
+        * View switched
         */
        public void internalFrameActivated(InternalFrameEvent e) {
-               Long network_id = componentMap.get(e.getInternalFrame());
+               final Long network_id = componentMap.get(e.getInternalFrame());
 
+               
                if (network_id == null)
                        return;
 
+               final RenderingEngine<CyNetwork> currentEngine = 
applicationManager.getCurrentRenderingEngine();
                applicationManager.setCurrentNetworkView(network_id);
+               
+               if(currentEngine.getViewModel().getModel().getSUID() != 
network_id)
+                       
applicationManager.setCurrentRenderingEngine(presentationMap.get(network_id));
        }
 
        /**

Modified: 
core3/swing-application-impl/trunk/src/main/resources/META-INF/spring/bundle-context-osgi.xml
===================================================================
--- 
core3/swing-application-impl/trunk/src/main/resources/META-INF/spring/bundle-context-osgi.xml
       2010-12-28 23:44:07 UTC (rev 23272)
+++ 
core3/swing-application-impl/trunk/src/main/resources/META-INF/spring/bundle-context-osgi.xml
       2010-12-29 00:46:12 UTC (rev 23273)
@@ -294,16 +294,7 @@
                </osgi:interfaces>
        </osgi:service>
 
-       <osgi:service id="birdsEyeViewHandlerService" ref="birdsEyeViewHandler">
-               <osgi:interfaces>
-                       
<value>org.cytoscape.session.events.SetCurrentNetworkViewListener
-                       </value>
-                       
<value>org.cytoscape.session.events.SetCurrentNetworkListener
-                       </value>
-                       
<value>org.cytoscape.view.model.events.NetworkViewDestroyedListener
-                       </value>
-               </osgi:interfaces>
-       </osgi:service>
+       <osgi:service id="birdsEyeViewHandlerService" ref="birdsEyeViewHandler" 
auto-export="interfaces" />
 
        <osgi:service id="undoMonitorSetCurrentNetworkViewListenerService"
                ref="undoMonitor" 
interface="org.cytoscape.session.events.SetCurrentNetworkViewListener" />

Modified: 
core3/swing-application-impl/trunk/src/main/resources/META-INF/spring/bundle-context.xml
===================================================================
--- 
core3/swing-application-impl/trunk/src/main/resources/META-INF/spring/bundle-context.xml
    2010-12-28 23:44:07 UTC (rev 23272)
+++ 
core3/swing-application-impl/trunk/src/main/resources/META-INF/spring/bundle-context.xml
    2010-12-29 00:46:12 UTC (rev 23273)
@@ -71,8 +71,6 @@
 
        <bean name="birdsEyeViewHandler" 
class="org.cytoscape.internal.view.BirdsEyeViewHandler">
                <constructor-arg ref="networkViewManager" />
-               <constructor-arg ref="cyApplicationManagerServiceRef" />
-               <constructor-arg ref="cyNetworkViewManagerServiceRef" />
                <constructor-arg 
ref="dingNavigationPresentationFactoryServiceRef" />
        </bean>
 

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