JAL-3534 patch for simple case (Protein or Nucleotide, but not linked): transfer...
[jalview.git] / src / jalview / gui / OverviewPanel.java
index 567a121..9d0a55d 100755 (executable)
@@ -32,8 +32,6 @@ import jalview.viewmodel.ViewportListenerI;
 import java.awt.BorderLayout;
 import java.awt.Cursor;
 import java.awt.Dimension;
-import java.awt.Image;
-import java.awt.Point;
 import java.awt.event.ActionEvent;
 import java.awt.event.ActionListener;
 import java.awt.event.ComponentAdapter;
@@ -44,7 +42,6 @@ import java.awt.event.MouseMotionAdapter;
 import java.beans.PropertyChangeEvent;
 import java.beans.PropertyVetoException;
 
-import javax.swing.ImageIcon;
 import javax.swing.JCheckBoxMenuItem;
 import javax.swing.JInternalFrame;
 import javax.swing.JPanel;
@@ -61,10 +58,6 @@ import javax.swing.SwingUtilities;
 public class OverviewPanel extends JPanel
         implements Runnable, ViewportListenerI
 {
-  protected Image dragImage = new ImageIcon(
-          getClass().getResource("/images/dragcursor.png"))
-                  .getImage();
-
   private OverviewDimensions od;
 
   private OverviewCanvas oviewCanvas;
@@ -93,7 +86,7 @@ public class OverviewPanel extends JPanel
     this.ap = alPanel;
 
     showHidden = Cache.getDefault(Preferences.SHOW_OV_HIDDEN_AT_START,
-            true);
+            false);
     if (showHidden)
     {
       od = new OverviewDimensionsShowHidden(av.getRanges(),
@@ -119,22 +112,6 @@ public class OverviewPanel extends JPanel
 
     // without this the overview window does not size to fit the overview canvas
     setPreferredSize(new Dimension(od.getWidth(), od.getHeight()));
-
-    // set up custom cursor for use on Mac...
-    Point hotSpot = new Point(16, 16);
-    String cursorName = "Custom drag cursor";
-    
-    Cursor tempCursor;
-    if (Platform.isAMac())
-    {
-      tempCursor = getToolkit().createCustomCursor(dragImage, hotSpot,
-              cursorName);
-    }
-    else
-    {
-      tempCursor = Cursor.getPredefinedCursor(Cursor.MOVE_CURSOR);
-    }
-    final Cursor dragCursor = tempCursor;
     
     addComponentListener(new ComponentAdapter()
     {
@@ -195,14 +172,18 @@ public class OverviewPanel extends JPanel
       {
         if (od.isPositionInBox(evt.getX(), evt.getY()))
         {
-          // display drag cursor at mouse position
-          getParent().setCursor(dragCursor);
+          /*
+           * using HAND_CURSOR rather than DRAG_CURSOR 
+           * as the latter is not supported on Mac
+           */
+          getParent().setCursor(
+                  Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
         }
         else
         {
           // reset cursor
           getParent().setCursor(
-                  Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR));
+                  Cursor.getPredefinedCursor(Cursor.CROSSHAIR_CURSOR));
         }
       }
 
@@ -228,9 +209,15 @@ public class OverviewPanel extends JPanel
           if (!od.isPositionInBox(evt.getX(), evt.getY()))
           {
             draggingBox = false;
+
+            // display drag cursor at mouse position
+            setCursor(Cursor.getPredefinedCursor(Cursor.MOVE_CURSOR));
+
             od.updateViewportFromMouse(evt.getX(), evt.getY(),
                     av.getAlignment().getHiddenSequences(),
                     av.getAlignment().getHiddenColumns());
+            getParent().setCursor(
+                    Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
           }
           else
           {
@@ -249,19 +236,14 @@ public class OverviewPanel extends JPanel
         {
           showPopupMenu(evt);
         }
-        // click in box should also reset the cursor
-        else if (od.isPositionInBox(evt.getX(), evt.getY()))
-        {
-          // display drag cursor at mouse position
-          getParent().setCursor(dragCursor);
-        }
-        else
-        {
-          // reset cursor
-          getParent().setCursor(
-                  Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR));
-        }
       }
+
+      @Override
+      public void mouseReleased(MouseEvent evt)
+      {
+        draggingBox = false;
+      }
+
     });
   }