Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMatthew Davis2011-08-04 20:53:49 +0000
committerMatthew Davis2011-08-04 20:53:49 +0000
commitad0ec18a4cca378420775f4013701426657cf271 (patch)
treeed412648c1d1ddf0c2d3b548427002a9dae3fa3a
parentebf278c5010b90561bbd1dd4cc2ce5f7b1c6300b (diff)
downloadorg.eclipse.stem-ad0ec18a4cca378420775f4013701426657cf271.tar.gz
org.eclipse.stem-ad0ec18a4cca378420775f4013701426657cf271.tar.xz
org.eclipse.stem-ad0ec18a4cca378420775f4013701426657cf271.zip
Copy over from trunk for fix for bug 353738
git-svn-id: http://dev.eclipse.org/svnroot/technology/org.eclipse.stem/branches/STEM_1_2_1@2360 92a21009-5b66-0410-b83a-dc787c41c6e9
-rw-r--r--core/org.eclipse.stem.ui/src/org/eclipse/stem/ui/views/geographic/map/MapCanvas.java46
1 files changed, 37 insertions, 9 deletions
diff --git a/core/org.eclipse.stem.ui/src/org/eclipse/stem/ui/views/geographic/map/MapCanvas.java b/core/org.eclipse.stem.ui/src/org/eclipse/stem/ui/views/geographic/map/MapCanvas.java
index 28a7e43c9..ebdf6c017 100644
--- a/core/org.eclipse.stem.ui/src/org/eclipse/stem/ui/views/geographic/map/MapCanvas.java
+++ b/core/org.eclipse.stem.ui/src/org/eclipse/stem/ui/views/geographic/map/MapCanvas.java
@@ -24,6 +24,7 @@ import org.eclipse.jface.viewers.ISelectionProvider;
import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.jface.viewers.SelectionChangedEvent;
import org.eclipse.jface.viewers.StructuredSelection;
+import org.eclipse.jface.window.DefaultToolTip;
import org.eclipse.stem.core.common.DublinCore;
import org.eclipse.stem.core.common.Identifiable;
import org.eclipse.stem.core.graph.Edge;
@@ -73,6 +74,8 @@ public class MapCanvas
implements ISelectionProvider, PaintListener, MouseWheelListener, MouseMoveListener, DisposeListener
{
+ private static final int TOOLTIP_HIDE_DELAY = 30000; // milliseconds
+
private static final double INITIAL_ZOOM_FACTOR = 1;
private static final double INITIAL_X_TRANSLATION = 0;
private static final double INITIAL_Y_TRANSLATION = 0;
@@ -125,6 +128,7 @@ public class MapCanvas
private STEMTime time;
private Sequencer sequencer;
+ private DefaultToolTip tooltip;
/**
* @param parent
@@ -141,8 +145,13 @@ public class MapCanvas
addDisposeListener(this);
addMouseListener(mouseButtonHandler);
addMouseTrackListener(mouseHoverHandler);
+
+ tooltip = new DefaultToolTip(this);
+ tooltip.setHideDelay(TOOLTIP_HIDE_DELAY);
+
} // MapCanvas
+
/**
* @see org.eclipse.swt.events.PaintListener#paintControl(org.eclipse.swt.events.PaintEvent)
*/
@@ -210,10 +219,7 @@ public class MapCanvas
* @param e
*/
public void mouseMove(MouseEvent e) {
- //Remove the tooltip text when the mouse is move to avoid showing a wrong
- //tooltip text before the right text is being calculated
- setToolTipText(null);
-
+
if (leftMouseButtonPressed) {
// Yes
// new x and y are defined by current mouse location subtracted
@@ -566,7 +572,8 @@ public class MapCanvas
* @see org.eclipse.swt.events.MouseTrackListener#mouseHover(org.eclipse.swt.events.MouseEvent)
*/
@Override
- public void mouseHover(final MouseEvent e) {
+ public void mouseHover(final MouseEvent e) {
+
// Convert from canvas space coordinates to lat/long by the inverse
// transform.
final Point latLongPosition = pointsTransformer.getInversedPoint(e.x, e.y);//inverseMap(new Point(e.x, e.y));
@@ -587,6 +594,9 @@ public class MapCanvas
final String isoKey = dcIdentifier.substring(dcIdentifier
.lastIndexOf("/") + 1);
// Did we get it?
+
+ String toolTipText = null;
+
if (isoKey != null && !isoKey.equals("")) {
// Yes
final String geographicName = GeographicNames
@@ -630,11 +640,25 @@ public class MapCanvas
retry = true; // Should be rare, just retry
}
}
- setToolTipText(sb.toString());
+
+ toolTipText = sb.toString();
+
} // if
else {
- setToolTipText(polygon.getTitle());
+ toolTipText = polygon.getTitle();
}
+
+ if (tooltip != null) {
+ if (toolTipText != null) {
+ tooltip.setText(toolTipText);
+ tooltip.show(new Point(e.x, e.y));
+ } else {
+ tooltip.hide();
+ }
+ }
+
+
+
/*
* // Yes //mapCanvas.setToolTipText(polygon.getTitle() + "\n"
* +polygon.getRelativeValue());
@@ -647,7 +671,9 @@ public class MapCanvas
} // if
else {
// No
- setToolTipText(null);
+ if (tooltip != null) {
+ tooltip.hide();
+ }
}
} // mouseHover
@@ -755,7 +781,9 @@ public class MapCanvas
* @see org.eclipse.swt.widgets.Widget#dispose()
*/
@Override
- public void dispose() {
+ public void dispose() {
+ tooltip = null;
+
removePaintListener(this);
removeMouseWheelListener(this);
removeMouseTrackListener(mouseTrackHandler);

Back to the top