Author: kono
Date: 2010-12-29 22:51:53 -0800 (Wed, 29 Dec 2010)
New Revision: 23280

Removed:
   
core3/ding-presentation-impl/trunk/src/main/java/org/cytoscape/ding/impl/DingNavigationRenderingEngine.java
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/DingNavigationRenderingEngineFactory.java
   
core3/swing-application-impl/trunk/src/main/java/org/cytoscape/internal/view/BirdsEyeViewHandler.java
   
core3/vizmap-impl/trunk/impl/src/main/java/org/cytoscape/view/vizmap/internal/VisualMappingManagerImpl.java
Log:
Bird's Eye View window had been fixed.

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-30 01:33:13 UTC (rev 23279)
+++ 
core3/ding-presentation-impl/trunk/src/main/java/org/cytoscape/ding/impl/BirdsEyeView.java
  2010-12-30 06:51:53 UTC (rev 23280)
@@ -35,17 +35,18 @@
 
 package org.cytoscape.ding.impl;
 
+import java.awt.BasicStroke;
 import java.awt.Color;
 import java.awt.Component;
 import java.awt.Dimension;
 import java.awt.Graphics;
 import java.awt.Graphics2D;
 import java.awt.Image;
-import java.awt.Point;
 import java.awt.Rectangle;
+import java.awt.Stroke;
+import java.awt.event.MouseAdapter;
 import java.awt.event.MouseEvent;
-import java.awt.event.MouseListener;
-import java.awt.event.MouseMotionListener;
+import java.awt.event.MouseMotionAdapter;
 import java.awt.geom.Point2D;
 import java.awt.geom.Rectangle2D;
 import java.awt.image.BufferedImage;
@@ -66,11 +67,17 @@
  * 
  */
 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 static final Color VIEW_WINDOW_COLOR =  new Color(50, 50, 255, 
50);
+       private static final Color VIEW_WINDOW_BORDER_COLOR =  new 
Color(10,10,200,180);
+       private static final Stroke VIEW_WINDOW_BORDER_STROKE =  new 
BasicStroke(2);
+       
+       // Ratio of the graph image to panel size 
+       private static final double SCALE_FACTOR = 0.92;
 
        private final double[] m_extents = new double[4];
 
@@ -78,19 +85,21 @@
        
        private final ContentChangeListener m_cLis;
        private final ViewportChangeListener m_vLis;
-       private Image m_img = null;
+       
+       private Image networkImage = null;
+       
        private boolean m_contentChanged = false;
        private double m_myXCenter;
        private double m_myYCenter;
        private double m_myScaleFactor;
+       
        private int m_viewWidth;
        private int m_viewHeight;
+       
        private double m_viewXCenter;
        private double m_viewYCenter;
        private double m_viewScaleFactor;
 
-       private final Component m_desktopView;
-
        /**
         * Creates a new BirdsEyeView object.
         * 
@@ -100,33 +109,27 @@
         *            The desktop area holding the view. This should be
         *            NetworkViewManager.getDesktopPane().
         */
-       public BirdsEyeView(final Component vContainer, final DGraphView dgv) {
+       public BirdsEyeView(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 = vContainer;
 
                addMouseListener(new InnerMouseListener());
                addMouseMotionListener(new InnerMouseMotionListener());
-               setPreferredSize(new Dimension(180, 180));
-               setMinimumSize(new Dimension(180, 180));
+               setPreferredSize(MIN_SIZE);
+               setMinimumSize(MIN_SIZE);
 
                setView(dgv);
        }
 
        
-       private void setView(GraphView view) {
-//             if (view == null)
-//                     return;
-//             destroy();
+       private void setView(final GraphView view) {
 
                dgv.addContentChangeListener(m_cLis);
                dgv.addViewportChangeListener(m_vLis);
@@ -145,16 +148,19 @@
                final Rectangle2D viewable = getViewableRect();
                m_viewWidth = (int) viewable.getWidth();
                m_viewHeight = (int) viewable.getHeight();
+               
                final Rectangle2D viewableInView = 
getViewableRectInView(viewable);
                m_viewXCenter = viewableInView.getX() + 
viewableInView.getWidth() / 2.0;
                m_viewYCenter = viewableInView.getY() + 
viewableInView.getHeight()
                                / 2.0;
        }
+       
+       private Rectangle2D getViewableRect() {
+               final Rectangle r = dgv.getComponent().getBounds();
+               return new Rectangle2D.Double(r.x, r.y, r.width, r.height);
+       }
 
        private Rectangle2D getViewableRectInView(final Rectangle2D viewable) {
-               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();
@@ -166,54 +172,10 @@
                destination[1] = viewable.getY() + viewable.getHeight();
                dgv.xformComponentToNodeCoords(destination);
 
-               Rectangle2D result = new Rectangle2D.Double(origin[0], 
origin[1],
+               return new Rectangle2D.Double(origin[0], origin[1],
                                destination[0] - origin[0], destination[1] - 
origin[1]);
-               return result;
        }
-
-       private Rectangle2D getViewableRect() {
-               if (dgv == null)
-                       return new Rectangle2D.Double(0.0, 0.0, 0.0, 0.0);
-
-               if (m_desktopView == null) {
-                       final Rectangle r = dgv.getComponent().getBounds();
-                       return new Rectangle2D.Double(r.x, r.y, r.width, 
r.height);
-               }
-
-               final Rectangle desktopRect = m_desktopView.getBounds();
-               if (m_desktopView.isShowing()) {
-                       Point s = m_desktopView.getLocationOnScreen();
-                       desktopRect.x = s.x;
-                       desktopRect.y = s.y;
-               }
-
-               final Rectangle viewRect = dgv.getComponent().getBounds();
-               if (dgv.getComponent().isShowing()) {
-                       Point s = dgv.getComponent().getLocationOnScreen();
-                       viewRect.x = s.x;
-                       viewRect.y = s.y;
-               }
-
-               desktopRect.x -= viewRect.x;
-               desktopRect.y -= viewRect.y;
-               viewRect.x = 0;
-               viewRect.y = 0;
-
-               final Rectangle viewable = desktopRect.intersection(viewRect);
-               return viewable;
-       }
-
-//     /**
-//      * DOCUMENT ME!
-//      */
-//     public void destroy() {
-//             if (dgv == null)
-//                     return;
-//
-//             dgv.removeContentChangeListener(m_cLis);
-//             dgv.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!
@@ -223,81 +185,71 @@
         * @param width
         * @param height
         */
-       public void setBounds(int x, int y, int width, int height) {
+       @Override public void setBounds(int x, int y, int width, int height) {
                super.setBounds(x, y, width, height);
 
                if ((width > 0) && (height > 0))
-                       m_img = new BufferedImage(width, height,
+                       networkImage = new BufferedImage(width, height,
                                        BufferedImage.TYPE_INT_ARGB);
 
                m_contentChanged = true;
        }
 
+       
        /**
-        * DOCUMENT ME!
-        * 
-        * @param g
-        *            DOCUMENT ME!
+        * Render actual image on the panel.
         */
-       public void update(Graphics g) {
-               if (m_img == null)
+       @Override public void update(Graphics g) {
+               if (networkImage == null)
                        return;
 
-               if (dgv == null) {
-                       g.setColor(Color.white);
-                       g.fillRect(0, 0, getWidth(), getHeight());
-
-                       return;
-               }
-
                updateBounds();
 
                if (m_contentChanged) {
-                       if (dgv.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())
+                               m_myScaleFactor = SCALE_FACTOR * 
Math.min(((double) getWidth())
                                                / (m_extents[2] - 
m_extents[0]), ((double) getHeight())
                                                / (m_extents[3] - 
m_extents[1]));
-                       } else {
+                       } else {                                
                                m_myXCenter = 0.0d;
                                m_myYCenter = 0.0d;
                                m_myScaleFactor = 1.0d;
                        }
 
-                       dgv.drawSnapshot(m_img, dgv.getGraphLOD(),
+                       dgv.drawSnapshot(networkImage, dgv.getGraphLOD(),
                                        dgv.getBackgroundPaint(), m_myXCenter, 
m_myYCenter,
                                        m_myScaleFactor);
                        m_contentChanged = false;
                }
 
-               g.drawImage(m_img, 0, 0, null);
+               // Render network graphics.
+               g.drawImage(networkImage, 0, 0, null);
 
-               final double rectWidth = m_myScaleFactor
-                               * (((double) m_viewWidth) / m_viewScaleFactor);
-               final double rectHeight = m_myScaleFactor
-                               * (((double) m_viewHeight) / m_viewScaleFactor);
-               final double rectXCenter = (((double) getWidth()) / 2.0d)
-                               + (m_myScaleFactor * (m_viewXCenter - 
m_myXCenter));
-               final double rectYCenter = (((double) getHeight()) / 2.0d)
-                               + (m_myScaleFactor * (m_viewYCenter - 
m_myYCenter));
-               final Rectangle2D rect = new Rectangle2D.Double(rectXCenter
-                               - (rectWidth / 2), rectYCenter - (rectHeight / 
2), rectWidth,
-                               rectHeight);
+               // Compute view area
+               final double rectWidth = m_myScaleFactor * (((double) 
m_viewWidth) / m_viewScaleFactor);
+               final double rectHeight = m_myScaleFactor * (((double) 
m_viewHeight) / m_viewScaleFactor);
+               
+               final double rectXCenter = (((double) getWidth()) / 2.0d) + 
(m_myScaleFactor * (m_viewXCenter - m_myXCenter));
+               final double rectYCenter = (((double) getHeight()) / 2.0d) + 
(m_myScaleFactor * (m_viewYCenter - m_myYCenter));
+               
+               final double x = rectXCenter - (rectWidth/2);
+               final double y = rectYCenter - (rectHeight/2);
+               
+               final Rectangle2D viewArea = new Rectangle2D.Double(x, y, 
rectWidth, rectHeight);
+
+               // Draw the view area window            
                final Graphics2D g2 = (Graphics2D) g;
-               g2.setColor(new Color(63, 63, 255, 63));
-               g2.fill(rect);
-               g2.setColor(Color.blue);
-               g2.draw(rect);
+               g2.setStroke(VIEW_WINDOW_BORDER_STROKE);
+               g2.setColor(VIEW_WINDOW_COLOR);
+               g2.fill(viewArea);
+               g2.setColor(VIEW_WINDOW_BORDER_COLOR);
+               g2.draw(viewArea);
        }
 
-       /**
-        * DOCUMENT ME!
-        * 
-        * @param g
-        *            DOCUMENT ME!
-        */
-       public void paint(Graphics g) {
+       
+       @Override public void paint(Graphics g) {
                update(g);
        }
 
@@ -326,17 +278,9 @@
        private int m_lastXMousePos = 0;
        private int m_lastYMousePos = 0;
 
-       private final class InnerMouseListener implements MouseListener {
-               public void mouseClicked(MouseEvent e) {
-               }
+       private final class InnerMouseListener extends MouseAdapter {
 
-               public void mouseEntered(MouseEvent e) {
-               }
-
-               public void mouseExited(MouseEvent e) {
-               }
-
-               public void mousePressed(MouseEvent e) {
+               @Override public void mousePressed(MouseEvent e) {
                        if (e.getButton() == MouseEvent.BUTTON1) {
                                m_currMouseButton = 1;
                                m_lastXMousePos = e.getX();
@@ -344,7 +288,7 @@
                        }
                }
 
-               public void mouseReleased(MouseEvent e) {
+               @Override public void mouseReleased(MouseEvent e) {
                        if (e.getButton() == MouseEvent.BUTTON1) {
                                if (m_currMouseButton == 1)
                                        m_currMouseButton = 0;
@@ -352,11 +296,13 @@
                }
        }
 
-       private final class InnerMouseMotionListener implements 
MouseMotionListener {
-               public void mouseDragged(MouseEvent e) {
-                       
-                       System.out.println("--------- DRAG");
-                       
+       /**
+        * This class is for panning function.
+        *
+        */
+       private final class InnerMouseMotionListener extends MouseMotionAdapter 
{
+               @Override public void mouseDragged(MouseEvent e) {
+                                               
                        if (m_currMouseButton == 1) {
                                final int currX = e.getX();
                                final int currY = e.getY();
@@ -367,15 +313,11 @@
                                m_lastXMousePos = currX;
                                m_lastYMousePos = currY;
 
-                               if (dgv != null) {
-                                       final Point2D pt = dgv.getCenter();
-                                       dgv.setCenter(pt.getX() + deltaX, 
pt.getY() + deltaY);
-                               }
+                               final Point2D pt = dgv.getCenter();
+                               dgv.setCenter(pt.getX() + deltaX, pt.getY() + 
deltaY);
+                               dgv.updateView();
                        }
                }
-
-               public void mouseMoved(MouseEvent e) {
-               }
        }
 
        @Override public Dimension getMinimumSize() {

Deleted: 
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-30 01:33:13 UTC (rev 23279)
+++ 
core3/ding-presentation-impl/trunk/src/main/java/org/cytoscape/ding/impl/DingNavigationRenderingEngine.java
 2010-12-30 06:51:53 UTC (rev 23280)
@@ -1,69 +0,0 @@
-package org.cytoscape.ding.impl;
-
-import java.awt.Component;
-import java.awt.Image;
-import java.awt.print.Printable;
-import java.util.Properties;
-
-import javax.swing.Icon;
-
-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;
-
-/**
- * Wrapper for Navigation View
- *
- */
-public class DingNavigationRenderingEngine implements 
RenderingEngine<CyNetwork> {
-       
-       private final DGraphView dgv;   
-       private final Properties props;
-       
-       private final BirdsEyeView bev;
-       
-       public DingNavigationRenderingEngine(final Component container, final 
DGraphView dgv) {
-               this.dgv = dgv;
-               this.props = new Properties();
-               
-               bev = new BirdsEyeView(container, dgv);
-       }
-       
-
-       @Override
-       public View<CyNetwork> getViewModel() {
-               return dgv.getViewModel();
-       }
-       
-
-       @Override
-       public VisualLexicon getVisualLexicon() {
-               return dgv.getVisualLexicon();
-       }
-
-
-       @Override
-       public Properties getProperties() {
-               return props;
-       }
-
-       @Override
-       public Printable createPrintable() {
-               return dgv.createPrintable();
-       }
-
-       @Override
-       public Image createImage(int width, int height) {
-               // TODO Auto-generated method stub
-               return null;
-       }
-
-       @Override
-       public <V> Icon createIcon(VisualProperty<V> vp, V value, int w, int h) 
{
-               // TODO Auto-generated method stub
-               return null;
-       }
-
-}

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-30 01:33:13 UTC (rev 23279)
+++ 
core3/ding-presentation-impl/trunk/src/main/java/org/cytoscape/ding/impl/DingNavigationRenderingEngineFactory.java
  2010-12-30 06:51:53 UTC (rev 23280)
@@ -2,12 +2,10 @@
 
 
 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;
@@ -111,10 +109,8 @@
 
                final RenderingEngine<CyNetwork> engine = 
appManager.getCurrentRenderingEngine();
                
-               logger.info("!!!! DGV created for navigation: View ID = " + 
view.getSUID());
 
-
-               final BirdsEyeView bev = new BirdsEyeView(container, 
(DGraphView) engine);
+               final BirdsEyeView bev = new BirdsEyeView((DGraphView) engine);
                
                container.setLayout(new BorderLayout());
                container.add(bev, BorderLayout.CENTER);

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-30 01:33:13 UTC (rev 23279)
+++ 
core3/swing-application-impl/trunk/src/main/java/org/cytoscape/internal/view/BirdsEyeViewHandler.java
       2010-12-30 06:51:53 UTC (rev 23280)
@@ -108,50 +108,6 @@
                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();
-//
-//             // 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);
-//             // }
-//     }
-
-//     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 in the source");
-//             }
-//
-//     }
-
        
        @Override public void handleEvent(NetworkViewDestroyedEvent e) {
                // logger.debug("!!!!!!!!!! NetworkViewDestroyedEvent 
+++++++++++");
@@ -194,8 +150,6 @@
         */
        class FrameListener extends ComponentAdapter {
                public void componentMoved(ComponentEvent e) {
-                       logger.debug("!!!!! Update called: moved");
-                       ((CyNetworkView)engine.getViewModel()).updateView();
                        bevPanel.repaint();
                }
        }
@@ -205,8 +159,6 @@
         */
        class DesktopListener extends ComponentAdapter {
                public void componentResized(ComponentEvent e) {
-                       logger.debug("!!!!! Update called: resize");
-                       ((CyNetworkView)engine.getViewModel()).updateView();
                        bevPanel.repaint();
                }
        }
@@ -215,7 +167,7 @@
        public void handleEvent(final SetCurrentRenderingEngineEvent e) {
                this.engine = e.getRenderingEngine();
 
-               logger.debug("!!!!!!!!!!!Got SetCurrentRenderingEngineEvent.  
BEV New Network = "
+               logger.debug("Got SetCurrentRenderingEngineEvent.  BEV New 
Network = "
                                + engine.getViewModel().getSUID());
 
                bevPanel.removeAll();

Modified: 
core3/vizmap-impl/trunk/impl/src/main/java/org/cytoscape/view/vizmap/internal/VisualMappingManagerImpl.java
===================================================================
--- 
core3/vizmap-impl/trunk/impl/src/main/java/org/cytoscape/view/vizmap/internal/VisualMappingManagerImpl.java
 2010-12-30 01:33:13 UTC (rev 23279)
+++ 
core3/vizmap-impl/trunk/impl/src/main/java/org/cytoscape/view/vizmap/internal/VisualMappingManagerImpl.java
 2010-12-30 06:51:53 UTC (rev 23280)
@@ -57,11 +57,11 @@
        private static final String DEFAULT_STYLE_NAME = "Default";
        
        // Default Style
-       private static final Color NODE_COLOR = new Color(0, 50, 200);
-       private static final Color EDGE_COLOR = new Color(20, 20, 20);
+       private static final Color NODE_COLOR = new Color(0x4F, 0x94, 0xCD);
+       private static final Color EDGE_COLOR = new Color(50, 50, 50);
        private static final Double EDGE_WIDTH = 3d;
-       private static final Double NODE_WIDTH = 65d;
-       private static final Double NODE_HEIGHT = 30d;
+       private static final Double NODE_WIDTH = 35d;
+       private static final Double NODE_HEIGHT = 35d;
 
        private final VisualStyle defaultStyle;
 

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