This is an automated email from the git hooks/post-receive script. New commit to branch feature/6944 in repository observe. See http://git.codelutin.com/observe.git commit c15748606be10dc4562257c695e5347667a3d301 Author: Sylvain Bavencoff <bavencoff@codelutin.com> Date: Thu Apr 16 10:55:22 2015 +0200 mouse Translation --- .../open/impl/seine/TripSeineUIHandler.java | 78 +++++++++++++++++++++- 1 file changed, 75 insertions(+), 3 deletions(-) diff --git a/observe-swing/src/main/java/fr/ird/observe/ui/content/open/impl/seine/TripSeineUIHandler.java b/observe-swing/src/main/java/fr/ird/observe/ui/content/open/impl/seine/TripSeineUIHandler.java index 19004de..13bf37f 100644 --- a/observe-swing/src/main/java/fr/ird/observe/ui/content/open/impl/seine/TripSeineUIHandler.java +++ b/observe-swing/src/main/java/fr/ird/observe/ui/content/open/impl/seine/TripSeineUIHandler.java @@ -70,8 +70,13 @@ import javax.swing.JTabbedPane; import javax.swing.event.ChangeEvent; import javax.swing.event.ChangeListener; import java.awt.Color; +import java.awt.event.MouseEvent; +import java.awt.event.MouseListener; +import java.awt.event.MouseMotionListener; import java.awt.event.MouseWheelEvent; import java.awt.event.MouseWheelListener; +import java.awt.geom.AffineTransform; +import java.awt.geom.Point2D; import java.io.File; import java.util.Date; import java.util.List; @@ -184,7 +189,10 @@ public class TripSeineUIHandler extends ContentOpenableUIHandler<TripSeine> { } }); - tripMap.addMouseWheelListener(new MouseMapListener()); + MouseMapListener mouseMapListener = new MouseMapListener(); + tripMap.addMouseWheelListener(mouseMapListener); + tripMap.addMouseMotionListener(mouseMapListener); + tripMap.addMouseListener(mouseMapListener); finalizeOpenUI(mode, create); } @@ -347,6 +355,7 @@ public class TripSeineUIHandler extends ContentOpenableUIHandler<TripSeine> { JMapPane tripMap = getUi().getTripMap(); tripMap.setMapContent(getMapContent()); tripMap.setDisplayArea(tripArea); + tripMap.invalidate(); } protected MapContent mapContent; @@ -427,7 +436,7 @@ public class TripSeineUIHandler extends ContentOpenableUIHandler<TripSeine> { return mapContent; } - private class MouseMapListener implements MouseWheelListener { + private class MouseMapListener implements MouseWheelListener, MouseListener, MouseMotionListener { @Override public void mouseWheelMoved(MouseWheelEvent e) { @@ -441,10 +450,73 @@ public class TripSeineUIHandler extends ContentOpenableUIHandler<TripSeine> { JMapPane tripMap = getUi().getTripMap(); ReferencedEnvelope displayArea = tripMap.getDisplayArea(); displayArea.expandBy(scale); - tripMap.setDisplayArea(displayArea); + if (! displayArea.isEmpty()) { + tripMap.setDisplayArea(displayArea); + } + } + + @Override + public void mouseClicked(MouseEvent e) { + + } + + protected Point2D startPointInWorld; + protected AffineTransform startScreenToWorldTransform; + protected ReferencedEnvelope startDisplayArea; + + @Override + public void mousePressed(MouseEvent e) { + startMove(e.getPoint()); } + @Override + public void mouseReleased(MouseEvent e) { + endMove(e.getPoint()); + } + @Override + public void mouseEntered(MouseEvent e) { + + } + + @Override + public void mouseExited(MouseEvent e) { + + } + + @Override + public void mouseDragged(MouseEvent e) { + endMove(e.getPoint()); + } + + @Override + public void mouseMoved(MouseEvent e) { + + } + + protected void startMove(Point2D startPointInScreen) { + JMapPane tripMap = getUi().getTripMap(); + startDisplayArea = tripMap.getDisplayArea(); + startScreenToWorldTransform = tripMap.getScreenToWorldTransform(); + startPointInWorld = new Point2D.Double(); + startScreenToWorldTransform.transform(startPointInScreen, startPointInWorld); + } + + protected void endMove(Point2D endPointInScreen) { + Point2D endPointInWorld = new Point2D.Double(); + startScreenToWorldTransform.transform(endPointInScreen, endPointInWorld); + double transX = startPointInWorld.getX() - endPointInWorld.getX(); + double transY = startPointInWorld.getY() - endPointInWorld.getY(); + + ReferencedEnvelope endDisplayArea = new ReferencedEnvelope(startDisplayArea); + endDisplayArea.translate(transX, transY); + + JMapPane tripMap = getUi().getTripMap(); + tripMap.setDisplayArea(endDisplayArea); + if (log.isDebugEnabled()) { + log.debug(String.format("Translate (x : %s, y : %s)", transX, transY)); + } + } } } -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@list.forge.codelutin.com>.