JAL-1645 Version-Rel Version 2.9 Year-Rel 2015 Licensing glob
[jalview.git] / src / jalview / appletgui / ScalePanel.java
index 60d89aa..2445e2c 100755 (executable)
@@ -1,6 +1,6 @@
 /*
- * Jalview - A Sequence Alignment Editor and Viewer (Version 2.8.2)
- * Copyright (C) 2014 The Jalview Authors
+ * Jalview - A Sequence Alignment Editor and Viewer (Version 2.9)
+ * Copyright (C) 2015 The Jalview Authors
  * 
  * This file is part of Jalview.
  * 
  */
 package jalview.appletgui;
 
-import java.awt.*;
-import java.awt.event.*;
-
-import jalview.datamodel.*;
+import jalview.datamodel.ColumnSelection;
+import jalview.datamodel.SequenceGroup;
 import jalview.util.MessageManager;
 
+import java.awt.Color;
+import java.awt.FontMetrics;
+import java.awt.Graphics;
+import java.awt.MenuItem;
+import java.awt.Panel;
+import java.awt.PopupMenu;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import java.awt.event.InputEvent;
+import java.awt.event.MouseEvent;
+import java.awt.event.MouseListener;
+import java.awt.event.MouseMotionListener;
+
 public class ScalePanel extends Panel implements MouseMotionListener,
         MouseListener
 {
@@ -97,7 +108,7 @@ public class ScalePanel extends Panel implements MouseMotionListener,
         });
         pop.add(item);
 
-        if (av.getColumnSelection().getHiddenColumns().size() > 1)
+        if (av.getColumnSelection().hasManyHiddenColumns())
         {
           item = new MenuItem(MessageManager.getString("action.reveal_all"));
           item.addActionListener(new ActionListener()
@@ -323,10 +334,8 @@ public class ScalePanel extends Panel implements MouseMotionListener,
     res = av.getColumnSelection().adjustForHiddenColumns(res);
 
     reveal = null;
-    for (int i = 0; i < av.getColumnSelection().getHiddenColumns().size(); i++)
+    for (int[] region : av.getColumnSelection().getHiddenColumns())
     {
-      int[] region = (int[]) av.getColumnSelection().getHiddenColumns()
-              .elementAt(i);
       if (res + 1 == region[0] || res - 1 == region[1])
       {
         reveal = region;
@@ -353,7 +362,6 @@ public class ScalePanel extends Panel implements MouseMotionListener,
           int height)
   {
     gg.setFont(av.getFont());
-
     // Fill in the background
     gg.setColor(Color.white);
     gg.fillRect(0, 0, width, height);
@@ -362,7 +370,7 @@ public class ScalePanel extends Panel implements MouseMotionListener,
     // Fill the selected columns
     ColumnSelection cs = av.getColumnSelection();
     gg.setColor(new Color(220, 0, 0));
-
+    int avcharWidth = av.getCharWidth(), avcharHeight = av.getCharHeight();
     for (int i = 0; i < cs.size(); i++)
     {
       int sel = cs.columnAt(i);
@@ -373,7 +381,7 @@ public class ScalePanel extends Panel implements MouseMotionListener,
 
       if ((sel >= startx) && (sel <= endx))
       {
-        gg.fillRect((sel - startx) * av.charWidth, 0, av.charWidth,
+        gg.fillRect((sel - startx) * avcharWidth, 0, avcharWidth,
                 getSize().height);
       }
     }
@@ -384,7 +392,7 @@ public class ScalePanel extends Panel implements MouseMotionListener,
     int scalestartx = (startx / 10) * 10;
 
     FontMetrics fm = gg.getFontMetrics(av.getFont());
-    int y = av.charHeight - fm.getDescent();
+    int y = avcharHeight - fm.getDescent();
 
     if ((scalestartx % 10) == 0)
     {
@@ -400,26 +408,23 @@ public class ScalePanel extends Panel implements MouseMotionListener,
       {
         string = String.valueOf(av.getColumnSelection()
                 .adjustForHiddenColumns(i));
-        if ((i - startx - 1) * av.charWidth > maxX)
+        if ((i - startx - 1) * avcharWidth > maxX)
         {
-          gg.drawString(string, (i - startx - 1) * av.charWidth, y);
-          maxX = (i - startx + 1) * av.charWidth + fm.stringWidth(string);
+          gg.drawString(string, (i - startx - 1) * avcharWidth, y);
+          maxX = (i - startx + 1) * avcharWidth + fm.stringWidth(string);
         }
 
-        gg.drawLine(
-                (int) (((i - startx - 1) * av.charWidth) + (av.charWidth / 2)),
+        gg.drawLine(((i - startx - 1) * avcharWidth) + (avcharWidth / 2),
                 y + 2,
-                (int) (((i - startx - 1) * av.charWidth) + (av.charWidth / 2)),
-                y + (fm.getDescent() * 2));
+                ((i - startx - 1) * avcharWidth) + (avcharWidth / 2), y
+                        + (fm.getDescent() * 2));
 
       }
       else
       {
-        gg.drawLine(
-                (int) (((i - startx - 1) * av.charWidth) + (av.charWidth / 2)),
-                y + fm.getDescent(),
-                (int) (((i - startx - 1) * av.charWidth) + (av.charWidth / 2)),
-                y + (fm.getDescent() * 2));
+        gg.drawLine(((i - startx - 1) * avcharWidth) + (avcharWidth / 2), y
+                + fm.getDescent(), ((i - startx - 1) * avcharWidth)
+                + (avcharWidth / 2), y + (fm.getDescent() * 2));
       }
     }
 
@@ -441,12 +446,10 @@ public class ScalePanel extends Panel implements MouseMotionListener,
             continue;
           }
 
-          gg.fillPolygon(new int[]
-          { res * av.charWidth - av.charHeight / 4,
-              res * av.charWidth + av.charHeight / 4, res * av.charWidth },
-                  new int[]
-                  { y - av.charHeight / 2, y - av.charHeight / 2, y + 8 },
-                  3);
+          gg.fillPolygon(new int[] { res * avcharWidth - avcharHeight / 4,
+              res * avcharWidth + avcharHeight / 4, res * avcharWidth },
+                  new int[] { y - avcharHeight / 2, y - avcharHeight / 2,
+                      y + 8 }, 3);
 
         }
       }
@@ -454,7 +457,7 @@ public class ScalePanel extends Panel implements MouseMotionListener,
       if (reveal != null && reveal[0] > startx && reveal[0] < endx)
       {
         gg.drawString(MessageManager.getString("label.reveal_columns"),
-                reveal[0] * av.charWidth, 0);
+                reveal[0] * avcharWidth, 0);
       }
     }