X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fgui%2FScalePanel.java;h=316b6beeb921fdad69ed374c17c7344801db9d6f;hb=71d6099d5246bdaf7b667e02620f403937582780;hp=f2cbf331f0bec2c3efa6298cb94af8cf016ddddb;hpb=fa7eb69d9da6df5ed78244d1968adbaa3b3b677c;p=jalview.git diff --git a/src/jalview/gui/ScalePanel.java b/src/jalview/gui/ScalePanel.java index f2cbf33..316b6be 100755 --- a/src/jalview/gui/ScalePanel.java +++ b/src/jalview/gui/ScalePanel.java @@ -23,7 +23,10 @@ package jalview.gui; import jalview.datamodel.ColumnSelection; import jalview.datamodel.SequenceGroup; import jalview.datamodel.SequenceI; +import jalview.renderer.ScaleRenderer; +import jalview.renderer.ScaleRenderer.ScaleMark; import jalview.util.MessageManager; +import jalview.util.Platform; import java.awt.Color; import java.awt.FontMetrics; @@ -43,17 +46,14 @@ import javax.swing.JPopupMenu; import javax.swing.ToolTipManager; /** - * DOCUMENT ME! - * - * @author $author$ - * @version $Revision$ + * The panel containing the sequence ruler (when not in wrapped mode), and + * supports a range of mouse operations to select, hide or reveal columns. */ public class ScalePanel extends JPanel implements MouseMotionListener, MouseListener { protected int offy = 4; - /** DOCUMENT ME!! */ public int width; protected AlignViewport av; @@ -62,13 +62,26 @@ public class ScalePanel extends JPanel implements MouseMotionListener, boolean stretchingGroup = false; - int min; // used by mouseDragged to see if user + /* + * min, max hold the extent of a mouse drag action + */ + int min; - int max; // used by mouseDragged to see if user + int max; boolean mouseDragging = false; - // wants to delete columns + /* + * holds a hidden column range when the mouse is over an adjacent column + */ + int[] reveal; + + /** + * Constructor + * + * @param av + * @param ap + */ public ScalePanel(AlignViewport av, AlignmentPanel ap) { this.av = av; @@ -209,7 +222,7 @@ public class ScalePanel extends JPanel implements MouseMotionListener, */ protected void leftMouseButtonPressed(MouseEvent evt, final int res) { - if (!evt.isControlDown() && !evt.isShiftDown()) + if (!Platform.isControlDown(evt) && !evt.isShiftDown()) { av.getColumnSelection().clear(); } @@ -393,6 +406,8 @@ public class ScalePanel extends JPanel implements MouseMotionListener, @Override public void mouseMoved(MouseEvent evt) { + this.setToolTipText(null); + reveal = null; if (!av.hasHiddenColumns()) { return; @@ -402,7 +417,6 @@ public class ScalePanel extends JPanel implements MouseMotionListener, res = av.getColumnSelection().adjustForHiddenColumns(res); - reveal = null; if (av.getColumnSelection().getHiddenColumns() != null) { for (int[] region : av.getColumnSelection().getHiddenColumns()) @@ -415,17 +429,11 @@ public class ScalePanel extends JPanel implements MouseMotionListener, .getString("label.reveal_hidden_columns")); break; } - else - { - this.setToolTipText(null); - } } } repaint(); } - int[] reveal; - /** * DOCUMENT ME! * @@ -492,7 +500,8 @@ public class ScalePanel extends JPanel implements MouseMotionListener, int widthx = 1 + endx - startx; FontMetrics fm = gg.getFontMetrics(av.getFont()); - int y = avCharHeight, yOf = fm.getDescent(); + int y = avCharHeight; + int yOf = fm.getDescent(); y -= yOf; if (av.hasHiddenColumns()) { @@ -517,7 +526,6 @@ public class ScalePanel extends JPanel implements MouseMotionListener, -1 + res * avCharWidth - avCharHeight / 4, -1 + res * avCharWidth + avCharHeight / 4, -1 + res * avCharWidth }, new int[] { y, y, y + 2 * yOf }, 3); - } } } @@ -525,14 +533,14 @@ public class ScalePanel extends JPanel implements MouseMotionListener, gg.setColor(Color.black); int maxX = 0; - List marks = jalview.renderer.ScaleRenderer.calculateMarks( - av, startx, endx); + List marks = new ScaleRenderer().calculateMarks(av, startx, + endx); - for (Object[] mark : marks) + for (ScaleMark mark : marks) { - boolean major = Boolean.valueOf((Boolean) mark[0]); - int mpos = ((Integer) mark[1]).intValue(); // (i - startx - 1) - String mstring = (String) mark[2]; + boolean major = mark.major; + int mpos = mark.column; // (i - startx - 1) + String mstring = mark.text; if (mstring != null) { if (mpos * avCharWidth > maxX) @@ -552,15 +560,6 @@ public class ScalePanel extends JPanel implements MouseMotionListener, (mpos * avCharWidth) + (avCharWidth / 2), y + (yOf * 2)); } } - if (av.hasHiddenColumns()) - { - if (reveal != null && reveal[0] > startx && reveal[0] < endx) - { - gg.drawString(MessageManager.getString("label.reveal_columns"), - reveal[0] * avCharWidth, 0); - } - } - } }