Mouse wheel to zoom
[jalview.git] / src / jalview / gui / RotatableCanvas.java
index 92abbf6..9007e4f 100755 (executable)
@@ -1,6 +1,6 @@
 /*\r
  * Jalview - A Sequence Alignment Editor and Viewer\r
- * Copyright (C) 2005 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle\r
+ * Copyright (C) 2006 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle\r
  *\r
  * This program is free software; you can redistribute it and/or\r
  * modify it under the terms of the GNU General Public License\r
@@ -22,8 +22,6 @@ import jalview.datamodel.*;
 \r
 import jalview.math.*;\r
 \r
-import jalview.util.*;\r
-\r
 import java.awt.*;\r
 import java.awt.event.*;\r
 \r
@@ -81,6 +79,25 @@ public class RotatableCanvas extends JPanel implements MouseListener,
     public RotatableCanvas(AlignViewport av)\r
     {\r
       this.av = av;\r
+\r
+      addMouseWheelListener(new MouseWheelListener()\r
+      {\r
+        public void mouseWheelMoved(MouseWheelEvent e)\r
+        {\r
+          if (e.getWheelRotation() > 0)\r
+          {\r
+            scale = (float) (scale * 1.1);\r
+            repaint();\r
+          }\r
+\r
+          else\r
+          {\r
+            scale = (float) (scale * 0.9);\r
+            repaint();\r
+          }\r
+        }\r
+      });\r
+\r
     }\r
 \r
     public void showLabels(boolean b)\r
@@ -96,7 +113,7 @@ public class RotatableCanvas extends JPanel implements MouseListener,
         ToolTipManager.sharedInstance().registerComponent(this);\r
         ToolTipManager.sharedInstance().setInitialDelay(0);\r
         ToolTipManager.sharedInstance().setDismissDelay(10000);\r
-        PaintRefresher.Register(this, av.alignment);\r
+        PaintRefresher.Register(this, av.getSequenceSetId());\r
 \r
         prefsize = getPreferredSize();\r
         orig = new float[npoint][3];\r
@@ -140,7 +157,6 @@ public class RotatableCanvas extends JPanel implements MouseListener,
         scale = findScale();\r
 \r
         addMouseListener(this);\r
-        addKeyListener(this);\r
 \r
         addMouseMotionListener(this);\r
 \r
@@ -303,9 +319,13 @@ public class RotatableCanvas extends JPanel implements MouseListener,
      *\r
      * @param g DOCUMENT ME!\r
      */\r
-    public void paintComponent(Graphics g)\r
+    public void paintComponent(Graphics g1)\r
     {\r
 \r
+      Graphics2D g = (Graphics2D) g1;\r
+\r
+      g.setRenderingHint(RenderingHints.KEY_ANTIALIASING,\r
+                         RenderingHints.VALUE_ANTIALIAS_ON);\r
       if(points==null)\r
       {\r
         g.setFont(new Font("Verdana", Font.PLAIN, 18));\r
@@ -345,12 +365,8 @@ public class RotatableCanvas extends JPanel implements MouseListener,
      *\r
      * @param g DOCUMENT ME!\r
      */\r
-    public void drawAxes(Graphics g1)\r
+    public void drawAxes(Graphics g)\r
     {\r
-      Graphics2D g = (Graphics2D) g1;\r
-\r
-      g.setRenderingHint(RenderingHints.KEY_ANTIALIASING,\r
-                         RenderingHints.VALUE_ANTIALIAS_ON);\r
 \r
         g.setColor(Color.yellow);\r
 \r
@@ -400,18 +416,18 @@ public class RotatableCanvas extends JPanel implements MouseListener,
                 halfheight;\r
             float z = sp.coord[1] - centre[2];\r
 \r
-            if (sp.sequence.getColor() == Color.black)\r
+            if (av.getSequenceColour(sp.sequence) == Color.black)\r
             {\r
                 g.setColor(Color.white);\r
             }\r
             else\r
             {\r
-                g.setColor(sp.sequence.getColor());\r
+                g.setColor(av.getSequenceColour(sp.sequence));\r
             }\r
 \r
             if (av.getSelectionGroup() != null)\r
             {\r
-                if (av.getSelectionGroup().sequences.contains(\r
+                if (av.getSelectionGroup().getSequences(false).contains(\r
                             ((SequencePoint) points.elementAt(i)).sequence))\r
                 {\r
                     g.setColor(Color.gray);\r
@@ -486,8 +502,6 @@ public class RotatableCanvas extends JPanel implements MouseListener,
      */\r
     public void keyPressed(KeyEvent evt)\r
     {\r
-        requestFocus();\r
-\r
         if (evt.getKeyCode() == KeyEvent.VK_UP)\r
         {\r
             scalefactor = (float) (scalefactor * 1.1);\r
@@ -511,24 +525,6 @@ public class RotatableCanvas extends JPanel implements MouseListener,
         repaint();\r
     }\r
 \r
-    /**\r
-     * DOCUMENT ME!\r
-     */\r
-    public void printPoints()\r
-    {\r
-        for (int i = 0; i < npoint; i++)\r
-        {\r
-            SequencePoint sp = (SequencePoint) points.elementAt(i);\r
-            Format.print(System.out, "%5d ", i);\r
-\r
-            for (int j = 0; j < 3; j++)\r
-            {\r
-                Format.print(System.out, "%13.3f  ", sp.coord[j]);\r
-            }\r
-\r
-            System.out.println();\r
-        }\r
-    }\r
 \r
     /**\r
      * DOCUMENT ME!\r
@@ -598,7 +594,7 @@ public class RotatableCanvas extends JPanel implements MouseListener,
             if (av.getSelectionGroup() != null)\r
             {\r
                 av.getSelectionGroup().addOrRemove(found, true);\r
-                PaintRefresher.Refresh(this, av.alignment);\r
+                PaintRefresher.Refresh(this, av.getSequenceSetId());\r
             }\r
             else\r
             {\r
@@ -689,8 +685,6 @@ public class RotatableCanvas extends JPanel implements MouseListener,
      */\r
     public void rectSelect(int x1, int y1, int x2, int y2)\r
     {\r
-        boolean changedSel = false;\r
-\r
         for (int i = 0; i < npoint; i++)\r
         {\r
             SequencePoint sp = (SequencePoint) points.elementAt(i);\r
@@ -703,9 +697,8 @@ public class RotatableCanvas extends JPanel implements MouseListener,
             {\r
                 if (av != null)\r
                 {\r
-                    if (!av.getSelectionGroup().sequences.contains(sp.sequence))\r
+                    if (!av.getSelectionGroup().getSequences(false).contains(sp.sequence))\r
                     {\r
-                        changedSel = true;\r
                         av.getSelectionGroup().addSequence(sp.sequence, true);\r
                     }\r
                 }\r