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.