X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fappletgui%2FOverviewPanel.java;fp=src%2Fjalview%2Fappletgui%2FOverviewPanel.java;h=7431f6a5237c69978979693eeb4417587efdb457;hb=75aceeffea6e41f77a85ce6732780e760db739e5;hp=8ce597d06db20b454b89a05aa93f4e62cff0166b;hpb=e99b36343ee0362e70cb3055832959ea8e5568bc;p=jalview.git diff --git a/src/jalview/appletgui/OverviewPanel.java b/src/jalview/appletgui/OverviewPanel.java index 8ce597d..7431f6a 100755 --- a/src/jalview/appletgui/OverviewPanel.java +++ b/src/jalview/appletgui/OverviewPanel.java @@ -32,7 +32,9 @@ import java.awt.CheckboxMenuItem; import java.awt.Cursor; import java.awt.Dimension; import java.awt.Frame; +import java.awt.Image; import java.awt.Panel; +import java.awt.Point; import java.awt.PopupMenu; import java.awt.event.ComponentAdapter; import java.awt.event.ComponentEvent; @@ -44,9 +46,14 @@ import java.awt.event.MouseListener; import java.awt.event.MouseMotionListener; import java.beans.PropertyChangeEvent; +import javax.swing.ImageIcon; + public class OverviewPanel extends Panel implements Runnable, MouseMotionListener, MouseListener, ViewportListenerI { + protected Image dragImage = new ImageIcon( + getClass().getResource("/images/dragcursor.png")).getImage(); + private OverviewDimensions od; private OverviewCanvas oviewCanvas; @@ -61,6 +68,8 @@ public class OverviewPanel extends Panel implements Runnable, private boolean draggingBox = false; + private Cursor dragCursor; + public OverviewPanel(AlignmentPanel alPanel) { this.av = alPanel.av; @@ -79,6 +88,20 @@ public class OverviewPanel extends Panel implements Runnable, av.getRanges().addPropertyChangeListener(this); + // set up custom cursor for use on Mac... + Point hotSpot = new Point(16, 16); + String cursorName = "Custom drag cursor"; + + if (Platform.isAMac()) + { + dragCursor = getToolkit().createCustomCursor(dragImage, hotSpot, + cursorName); + } + else + { + dragCursor = Cursor.getPredefinedCursor(Cursor.MOVE_CURSOR); + } + addComponentListener(new ComponentAdapter() { @@ -119,20 +142,33 @@ public class OverviewPanel extends Panel implements Runnable, { showPopupMenu(evt); } + else if (od.isPositionInBox(evt.getX(), evt.getY())) + { + // display drag cursor at mouse position + this.getParent().setCursor(dragCursor); + } + else + { + // reset cursor + this.getParent() + .setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR)); + } } @Override public void mouseMoved(MouseEvent evt) { + System.out.println(evt.getY()); if (od.isPositionInBox(evt.getX(), evt.getY())) { // display drag cursor at mouse position - setCursor(Cursor.getPredefinedCursor(Cursor.MOVE_CURSOR)); + this.getParent().setCursor(dragCursor); } else { // reset cursor - setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR)); + this.getParent() + .setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR)); } }