X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fgui%2FScalePanel.java;h=833cd54bcc162d49e5787bb4306d191328889336;hb=refs%2Fheads%2Fbug%2FJAL-3212columnSelectionWithHidden;hp=714a5aad7914d3ca2614f980f76f36fe88a17a30;hpb=3c36c8d6bd78fff1770222276512026fe20751fc;p=jalview.git diff --git a/src/jalview/gui/ScalePanel.java b/src/jalview/gui/ScalePanel.java index 714a5aa..833cd54 100755 --- a/src/jalview/gui/ScalePanel.java +++ b/src/jalview/gui/ScalePanel.java @@ -109,6 +109,7 @@ public class ScalePanel extends JPanel public void mousePressed(MouseEvent evt) { final int res = av.getAbsoluteColumn(evt.getX()); + min = res; max = res; @@ -141,10 +142,27 @@ public class ScalePanel extends JPanel */ protected void rightMouseButtonPressed(MouseEvent evt, final int res) { + JPopupMenu pop = buildPopupMenu(res); + if (pop.getSubElements().length > 0) + { + pop.show(this, evt.getX(), evt.getY()); + } + } + + /** + * Builds a popup menu with 'Hide' or 'Reveal' options, or both, or neither + * + * @param res + * column number (0..) + * @return + */ + protected JPopupMenu buildPopupMenu(final int res) + { JPopupMenu pop = new JPopupMenu(); /* - * grab the hidden range in case mouseMoved nulls it + * logic here depends on 'reveal', set in mouseMoved; + * grab the hidden range in case mouseMoved nulls it later */ final int[] hiddenRange = reveal; if (hiddenRange != null) @@ -182,9 +200,9 @@ public class ScalePanel extends JPanel }); pop.add(item); } - pop.show(this, evt.getX(), evt.getY()); } - else if (av.getColumnSelection().contains(res)) + + if (av.getColumnSelection().contains(res)) { JMenuItem item = new JMenuItem( MessageManager.getString("label.hide_columns")); @@ -206,8 +224,8 @@ public class ScalePanel extends JPanel } }); pop.add(item); - pop.show(this, evt.getX(), evt.getY()); } + return pop; } /**