From e2227e5cbd0772e74c24f9e5420a8427fae5ddac Mon Sep 17 00:00:00 2001 From: gmungoc Date: Wed, 31 Aug 2016 16:37:49 +0100 Subject: [PATCH] JAL-2077 test isPopupTrigger in mouseReleased or mouseClicked (for Windows) as well as mousePressed (Mac) --- src/MCview/PDBViewer.java | 67 ++++++++++------- src/jalview/gui/AlignFrame.java | 65 ++++++++++------ src/jalview/gui/AnnotationLabels.java | 21 +++++- src/jalview/gui/AnnotationPanel.java | 91 ++++++++++++++--------- src/jalview/gui/CutAndPasteHtmlTransfer.java | 1 + src/jalview/gui/CutAndPasteTransfer.java | 4 + src/jalview/gui/Desktop.java | 11 ++- src/jalview/gui/FeatureSettings.java | 7 +- src/jalview/gui/IdPanel.java | 74 ++++++++++-------- src/jalview/gui/OptsAndParamsPage.java | 18 +++-- src/jalview/gui/ScalePanel.java | 12 ++- src/jalview/gui/SeqPanel.java | 62 ++++++++++----- src/jalview/jbgui/GAlignFrame.java | 81 +++++++++++++------- src/jalview/jbgui/GCutAndPasteHtmlTransfer.java | 13 ++++ src/jalview/jbgui/GCutAndPasteTransfer.java | 15 +++- 15 files changed, 360 insertions(+), 182 deletions(-) diff --git a/src/MCview/PDBViewer.java b/src/MCview/PDBViewer.java index d5f0d0b..66ce147 100755 --- a/src/MCview/PDBViewer.java +++ b/src/MCview/PDBViewer.java @@ -415,34 +415,51 @@ public class PDBViewer extends JInternalFrame implements Runnable @Override public void mousePressed(MouseEvent evt) { - if (evt.isPopupTrigger()) + if (evt.isPopupTrigger()) // Mac { - radioItem.removeActionListener(radioItem.getActionListeners()[0]); - - int option = JOptionPane.showInternalConfirmDialog( - jalview.gui.Desktop.desktop, - MessageManager - .getString("label.remove_from_default_list"), - MessageManager - .getString("label.remove_user_defined_colour"), - JOptionPane.YES_NO_OPTION); - if (option == JOptionPane.YES_OPTION) - { - jalview.gui.UserDefinedColours - .removeColourFromDefaults(radioItem.getText()); - coloursMenu.remove(radioItem); - } - else + offerRemoval(radioItem); + } + } + + @Override + public void mouseReleased(MouseEvent evt) + { + if (evt.isPopupTrigger()) // Windows + { + offerRemoval(radioItem); + } + } + + /** + * @param radioItem + */ + void offerRemoval(final JRadioButtonMenuItem radioItem) + { + radioItem.removeActionListener(radioItem.getActionListeners()[0]); + + int option = JOptionPane.showInternalConfirmDialog( + jalview.gui.Desktop.desktop, + MessageManager + .getString("label.remove_from_default_list"), + MessageManager + .getString("label.remove_user_defined_colour"), + JOptionPane.YES_NO_OPTION); + if (option == JOptionPane.YES_OPTION) + { + jalview.gui.UserDefinedColours + .removeColourFromDefaults(radioItem.getText()); + coloursMenu.remove(radioItem); + } + else + { + radioItem.addActionListener(new ActionListener() { - radioItem.addActionListener(new ActionListener() + @Override + public void actionPerformed(ActionEvent evt) { - @Override - public void actionPerformed(ActionEvent evt) - { - user_actionPerformed(evt); - } - }); - } + user_actionPerformed(evt); + } + }); } } }); diff --git a/src/jalview/gui/AlignFrame.java b/src/jalview/gui/AlignFrame.java index f6268c0..e8e7da3 100644 --- a/src/jalview/gui/AlignFrame.java +++ b/src/jalview/gui/AlignFrame.java @@ -3625,34 +3625,51 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, @Override public void mousePressed(MouseEvent evt) { - if (evt.isPopupTrigger()) + if (evt.isPopupTrigger()) // Mac { - radioItem.removeActionListener(radioItem.getActionListeners()[0]); + offerRemoval(radioItem); + } + } - int option = JOptionPane.showInternalConfirmDialog( - jalview.gui.Desktop.desktop, - MessageManager - .getString("label.remove_from_default_list"), - MessageManager - .getString("label.remove_user_defined_colour"), - JOptionPane.YES_NO_OPTION); - if (option == JOptionPane.YES_OPTION) - { - jalview.gui.UserDefinedColours - .removeColourFromDefaults(radioItem.getText()); - colourMenu.remove(radioItem); - } - else + @Override + public void mouseReleased(MouseEvent evt) + { + if (evt.isPopupTrigger()) // Windows + { + offerRemoval(radioItem); + } + } + + /** + * @param radioItem + */ + void offerRemoval(final JRadioButtonMenuItem radioItem) + { + radioItem.removeActionListener(radioItem.getActionListeners()[0]); + + int option = JOptionPane.showInternalConfirmDialog( + jalview.gui.Desktop.desktop, + MessageManager + .getString("label.remove_from_default_list"), + MessageManager + .getString("label.remove_user_defined_colour"), + JOptionPane.YES_NO_OPTION); + if (option == JOptionPane.YES_OPTION) + { + jalview.gui.UserDefinedColours + .removeColourFromDefaults(radioItem.getText()); + colourMenu.remove(radioItem); + } + else + { + radioItem.addActionListener(new ActionListener() { - radioItem.addActionListener(new ActionListener() + @Override + public void actionPerformed(ActionEvent evt) { - @Override - public void actionPerformed(ActionEvent evt) - { - userDefinedColour_actionPerformed(evt); - } - }); - } + userDefinedColour_actionPerformed(evt); + } + }); } } }); diff --git a/src/jalview/gui/AnnotationLabels.java b/src/jalview/gui/AnnotationLabels.java index 5b01b9b..92c6dc6 100755 --- a/src/jalview/gui/AnnotationLabels.java +++ b/src/jalview/gui/AnnotationLabels.java @@ -332,12 +332,20 @@ public class AnnotationLabels extends JPanel implements MouseListener, { getSelectedRow(evt.getY() - getScrollOffset()); oldY = evt.getY(); - if (!evt.isPopupTrigger()) + if (evt.isPopupTrigger()) { - return; + showPopupMenu(evt); } + } + + /** + * Build and show the Pop-up menu at the right-click mouse position + * + * @param evt + */ + void showPopupMenu(MouseEvent evt) + { evt.consume(); - // handle popup menu event final AlignmentAnnotation[] aa = ap.av.getAlignment() .getAlignmentAnnotation(); @@ -595,7 +603,6 @@ public class AnnotationLabels extends JPanel implements MouseListener, } } pop.show(this, evt.getX(), evt.getY()); - } /** @@ -607,6 +614,12 @@ public class AnnotationLabels extends JPanel implements MouseListener, @Override public void mouseReleased(MouseEvent evt) { + if (evt.isPopupTrigger()) + { + showPopupMenu(evt); + return; + } + int start = selectedRow; getSelectedRow(evt.getY() - getScrollOffset()); int end = selectedRow; diff --git a/src/jalview/gui/AnnotationPanel.java b/src/jalview/gui/AnnotationPanel.java index 6a621ff..60c9547 100755 --- a/src/jalview/gui/AnnotationPanel.java +++ b/src/jalview/gui/AnnotationPanel.java @@ -507,6 +507,7 @@ public class AnnotationPanel extends JPanel implements AwtRenderPanelI, int height = 0; activeRow = -1; + final int y = evt.getY(); for (int i = 0; i < aa.length; i++) { if (aa[i].visible) @@ -514,7 +515,7 @@ public class AnnotationPanel extends JPanel implements AwtRenderPanelI, height += aa[i].height; } - if (evt.getY() < height) + if (y < height) { if (aa[i].editable) { @@ -524,7 +525,7 @@ public class AnnotationPanel extends JPanel implements AwtRenderPanelI, { // Stretch Graph graphStretch = i; - graphStretchY = evt.getY(); + graphStretchY = y; } break; @@ -533,49 +534,59 @@ public class AnnotationPanel extends JPanel implements AwtRenderPanelI, if (evt.isPopupTrigger() && activeRow != -1) { - if (av.getColumnSelection() == null - || av.getColumnSelection().isEmpty()) - { - return; - } + showPopupMenu(y, evt.getX()); + return; + } - JPopupMenu pop = new JPopupMenu( - MessageManager.getString("label.structure_type")); - JMenuItem item; - /* - * Just display the needed structure options - */ - if (av.getAlignment().isNucleotide()) - { - item = new JMenuItem(STEM); - item.addActionListener(this); - pop.add(item); - } - else - { - item = new JMenuItem(HELIX); - item.addActionListener(this); - pop.add(item); - item = new JMenuItem(SHEET); - item.addActionListener(this); - pop.add(item); - } - item = new JMenuItem(LABEL); + ap.getScalePanel().mousePressed(evt); + + } + + /** + * Construct and display a context menu at the right-click position + * + * @param y + * @param x + */ + void showPopupMenu(final int y, int x) + { + if (av.getColumnSelection() == null + || av.getColumnSelection().isEmpty()) + { + return; + } + + JPopupMenu pop = new JPopupMenu( + MessageManager.getString("label.structure_type")); + JMenuItem item; + /* + * Just display the needed structure options + */ + if (av.getAlignment().isNucleotide()) + { + item = new JMenuItem(STEM); item.addActionListener(this); pop.add(item); - item = new JMenuItem(COLOUR); + } + else + { + item = new JMenuItem(HELIX); item.addActionListener(this); pop.add(item); - item = new JMenuItem(REMOVE); + item = new JMenuItem(SHEET); item.addActionListener(this); pop.add(item); - pop.show(this, evt.getX(), evt.getY()); - - return; } - - ap.getScalePanel().mousePressed(evt); - + item = new JMenuItem(LABEL); + item.addActionListener(this); + pop.add(item); + item = new JMenuItem(COLOUR); + item.addActionListener(this); + pop.add(item); + item = new JMenuItem(REMOVE); + item.addActionListener(this); + pop.add(item); + pop.show(this, x, y); } /** @@ -591,6 +602,12 @@ public class AnnotationPanel extends JPanel implements AwtRenderPanelI, graphStretchY = -1; mouseDragging = false; ap.getScalePanel().mouseReleased(evt); + + if (evt.isPopupTrigger() && activeRow != -1) + { + showPopupMenu(evt.getY(), evt.getX()); + } + } /** diff --git a/src/jalview/gui/CutAndPasteHtmlTransfer.java b/src/jalview/gui/CutAndPasteHtmlTransfer.java index 65d8670..dae83d1 100644 --- a/src/jalview/gui/CutAndPasteHtmlTransfer.java +++ b/src/jalview/gui/CutAndPasteHtmlTransfer.java @@ -228,6 +228,7 @@ public class CutAndPasteHtmlTransfer extends GCutAndPasteHtmlTransfer @Override public void textarea_mousePressed(MouseEvent e) { + // isPopupTrigger is on mousePressed (Mac) or mouseReleased (Windows) if (e.isPopupTrigger()) { JPopupMenu popup = new JPopupMenu( diff --git a/src/jalview/gui/CutAndPasteTransfer.java b/src/jalview/gui/CutAndPasteTransfer.java index 1161340..ed2b9bf 100644 --- a/src/jalview/gui/CutAndPasteTransfer.java +++ b/src/jalview/gui/CutAndPasteTransfer.java @@ -358,6 +358,10 @@ public class CutAndPasteTransfer extends GCutAndPasteTransfer @Override public void textarea_mousePressed(MouseEvent e) { + /* + * isPopupTrigger is checked in mousePressed on Mac, + * in mouseReleased on Windows + */ if (e.isPopupTrigger()) { JPopupMenu popup = new JPopupMenu( diff --git a/src/jalview/gui/Desktop.java b/src/jalview/gui/Desktop.java index 3cc2c14..387a2a9 100644 --- a/src/jalview/gui/Desktop.java +++ b/src/jalview/gui/Desktop.java @@ -397,7 +397,16 @@ public class Desktop extends jalview.jbgui.GDesktop implements @Override public void mousePressed(MouseEvent evt) { - if (evt.isPopupTrigger()) + if (evt.isPopupTrigger()) // Mac + { + showPasteMenu(evt.getX(), evt.getY()); + } + } + + @Override + public void mouseReleased(MouseEvent evt) + { + if (evt.isPopupTrigger()) // Windows { showPasteMenu(evt.getX(), evt.getY()); } diff --git a/src/jalview/gui/FeatureSettings.java b/src/jalview/gui/FeatureSettings.java index 3b8ce37..874ce16 100644 --- a/src/jalview/gui/FeatureSettings.java +++ b/src/jalview/gui/FeatureSettings.java @@ -174,8 +174,7 @@ public class FeatureSettings extends JPanel implements public void mousePressed(MouseEvent evt) { selectedRow = table.rowAtPoint(evt.getPoint()); - boolean ctrlDown = Platform.isControlDown(evt); - if (SwingUtilities.isRightMouseButton(evt) && !ctrlDown) + if (evt.isPopupTrigger()) { popupSort(selectedRow, (String) table.getValueAt(selectedRow, 0), table.getValueAt(selectedRow, 1), fr.getMinMax(), @@ -184,7 +183,7 @@ public class FeatureSettings extends JPanel implements else if (evt.getClickCount() == 2) { boolean invertSelection = evt.isAltDown(); - boolean toggleSelection = ctrlDown; + boolean toggleSelection = Platform.isControlDown(evt); boolean extendSelection = evt.isShiftDown(); fr.ap.alignFrame.avc.markColumnsContainingFeatures( invertSelection, extendSelection, toggleSelection, @@ -192,7 +191,7 @@ public class FeatureSettings extends JPanel implements } } - // isPopupTrigger fires on mouseReleased on Mac + // isPopupTrigger fires on mouseReleased on Windows @Override public void mouseReleased(MouseEvent evt) { diff --git a/src/jalview/gui/IdPanel.java b/src/jalview/gui/IdPanel.java index 61ddafb..e5870df 100755 --- a/src/jalview/gui/IdPanel.java +++ b/src/jalview/gui/IdPanel.java @@ -316,39 +316,13 @@ public class IdPanel extends JPanel implements MouseListener, return; } - int seq = alignPanel.getSeqPanel().findSeq(e); - - if (e.isPopupTrigger()) + if (e.isPopupTrigger()) // Mac reports this in mousePressed { - Sequence sq = (Sequence) av.getAlignment().getSequenceAt(seq); - // build a new links menu based on the current links + any non-positional - // features - Vector nlinks = new Vector( - Preferences.sequenceURLLinks); - SequenceFeature sfs[] = sq == null ? null : sq.getSequenceFeatures(); - if (sfs != null) - { - for (SequenceFeature sf : sfs) - { - if (sf.begin == sf.end && sf.begin == 0) - { - if (sf.links != null && sf.links.size() > 0) - { - for (int l = 0, lSize = sf.links.size(); l < lSize; l++) - { - nlinks.addElement(sf.links.elementAt(l)); - } - } - } - } - } - - PopupMenu pop = new PopupMenu(alignPanel, sq, nlinks, - Preferences.getGroupURLLinks()); - pop.show(this, e.getX(), e.getY()); + showPopupMenu(e); return; } + if ((av.getSelectionGroup() == null) || (!jalview.util.Platform.isControlDown(e) && !e.isShiftDown() && av.getSelectionGroup() != null)) @@ -358,6 +332,7 @@ public class IdPanel extends JPanel implements MouseListener, av.getSelectionGroup().setEndRes(av.getAlignment().getWidth() - 1); } + int seq = alignPanel.getSeqPanel().findSeq(e); if (e.isShiftDown() && (lastid != -1)) { selectSeqs(lastid, seq); @@ -373,6 +348,42 @@ public class IdPanel extends JPanel implements MouseListener, } /** + * Build and show the popup-menu at the right-click mouse position + * + * @param e + */ + void showPopupMenu(MouseEvent e) + { + int seq2 = alignPanel.getSeqPanel().findSeq(e); + Sequence sq = (Sequence) av.getAlignment().getSequenceAt(seq2); + // build a new links menu based on the current links + any non-positional + // features + Vector nlinks = new Vector( + Preferences.sequenceURLLinks); + SequenceFeature sfs[] = sq == null ? null : sq.getSequenceFeatures(); + if (sfs != null) + { + for (SequenceFeature sf : sfs) + { + if (sf.begin == sf.end && sf.begin == 0) + { + if (sf.links != null && sf.links.size() > 0) + { + for (int l = 0, lSize = sf.links.size(); l < lSize; l++) + { + nlinks.addElement(sf.links.elementAt(l)); + } + } + } + } + } + + PopupMenu pop = new PopupMenu(alignPanel, sq, nlinks, + Preferences.getGroupURLLinks()); + pop.show(this, e.getX(), e.getY()); + } + + /** * Toggle whether the sequence is part of the current selection group. * * @param seq @@ -439,6 +450,11 @@ public class IdPanel extends JPanel implements MouseListener, PaintRefresher.Refresh(this, av.getSequenceSetId()); // always send selection message when mouse is released av.sendSelection(); + + if (e.isPopupTrigger()) // Windows reports this in mouseReleased + { + showPopupMenu(e); + } } /** diff --git a/src/jalview/gui/OptsAndParamsPage.java b/src/jalview/gui/OptsAndParamsPage.java index 7f1b305..040a1e5 100644 --- a/src/jalview/gui/OptsAndParamsPage.java +++ b/src/jalview/gui/OptsAndParamsPage.java @@ -210,7 +210,7 @@ public class OptsAndParamsPage @Override public void mouseClicked(MouseEvent e) { - if (e.isPopupTrigger()) + if (e.isPopupTrigger()) // for Windows { showUrlPopUp(this, finfo.toString(), e.getX(), e.getY()); } @@ -233,15 +233,15 @@ public class OptsAndParamsPage @Override public void mousePressed(MouseEvent e) { - // TODO Auto-generated method stub - + if (e.isPopupTrigger()) // Mac + { + showUrlPopUp(this, finfo.toString(), e.getX(), e.getY()); + } } @Override public void mouseReleased(MouseEvent e) { - // TODO Auto-generated method stub - } public void resetToDefault(boolean setDefaultParams) @@ -537,7 +537,7 @@ public class OptsAndParamsPage @Override public void mouseClicked(MouseEvent e) { - if (e.isPopupTrigger()) + if (e.isPopupTrigger()) // for Windows { showUrlPopUp(this, finfo.toString(), e.getX(), e.getY()); } @@ -560,8 +560,10 @@ public class OptsAndParamsPage @Override public void mousePressed(MouseEvent e) { - // TODO Auto-generated method stub - + if (e.isPopupTrigger()) // for Mac + { + showUrlPopUp(this, finfo.toString(), e.getX(), e.getY()); + } } @Override diff --git a/src/jalview/gui/ScalePanel.java b/src/jalview/gui/ScalePanel.java index 316b6be..bb2e0d7 100755 --- a/src/jalview/gui/ScalePanel.java +++ b/src/jalview/gui/ScalePanel.java @@ -120,7 +120,7 @@ public class ScalePanel extends JPanel implements MouseMotionListener, min = res; max = res; - if (evt.isPopupTrigger()) + if (evt.isPopupTrigger()) // Mac: mousePressed { rightMouseButtonPressed(evt, res); } @@ -281,8 +281,14 @@ public class ScalePanel extends JPanel implements MouseMotionListener, if (!stretchingGroup) { - ap.paintAlignment(false); - + if (evt.isPopupTrigger()) // Windows: mouseReleased + { + rightMouseButtonPressed(evt, res); + } + else + { + ap.paintAlignment(false); + } return; } diff --git a/src/jalview/gui/SeqPanel.java b/src/jalview/gui/SeqPanel.java index f476d41..46ea202 100644 --- a/src/jalview/gui/SeqPanel.java +++ b/src/jalview/gui/SeqPanel.java @@ -582,6 +582,13 @@ public class SeqPanel extends JPanel implements MouseListener, mouseDragging = false; mouseWheelPressed = false; + if (evt.isPopupTrigger()) // Windows: mouseReleased + { + showPopupMenu(evt); + evt.consume(); + return; + } + if (!editingSeqs) { doMouseReleasedDefineMode(evt); @@ -1546,8 +1553,8 @@ public class SeqPanel extends JPanel implements MouseListener, */ public void doMousePressedDefineMode(MouseEvent evt) { - int res = findRes(evt); - int seq = findSeq(evt); + final int res = findRes(evt); + final int seq = findSeq(evt); oldSeq = seq; startWrapBlock = wrappedBlock; @@ -1617,25 +1624,9 @@ public class SeqPanel extends JPanel implements MouseListener, } - if (evt.isPopupTrigger()) + if (evt.isPopupTrigger()) // Mac: mousePressed { - List allFeatures = ap.getFeatureRenderer() - .findFeaturesAtRes(sequence.getDatasetSequence(), - sequence.findPosition(res)); - List links = new ArrayList(); - for (SequenceFeature sf : allFeatures) - { - if (sf.links != null) - { - for (String link : sf.links) - { - links.add(link); - } - } - } - - PopupMenu pop = new PopupMenu(ap, null, links); - pop.show(this, evt.getX(), evt.getY()); + showPopupMenu(evt); return; } @@ -1689,6 +1680,37 @@ public class SeqPanel extends JPanel implements MouseListener, } /** + * Build and show a pop-up menu at the right-click mouse position + * + * @param evt + * @param res + * @param sequence + */ + void showPopupMenu(MouseEvent evt) + { + final int res = findRes(evt); + final int seq = findSeq(evt); + SequenceI sequence = av.getAlignment().getSequenceAt(seq); + List allFeatures = ap.getFeatureRenderer() + .findFeaturesAtRes(sequence.getDatasetSequence(), + sequence.findPosition(res)); + List links = new ArrayList(); + for (SequenceFeature sf : allFeatures) + { + if (sf.links != null) + { + for (String link : sf.links) + { + links.add(link); + } + } + } + + PopupMenu pop = new PopupMenu(ap, null, links); + pop.show(this, evt.getX(), evt.getY()); + } + + /** * DOCUMENT ME! * * @param evt diff --git a/src/jalview/jbgui/GAlignFrame.java b/src/jalview/jbgui/GAlignFrame.java index d7def6b..70333f4 100755 --- a/src/jalview/jbgui/GAlignFrame.java +++ b/src/jalview/jbgui/GAlignFrame.java @@ -292,34 +292,51 @@ public class GAlignFrame extends JInternalFrame @Override public void mousePressed(MouseEvent evt) { - if (evt.isPopupTrigger()) + if (evt.isPopupTrigger()) // Mac { - radioItem.removeActionListener(radioItem.getActionListeners()[0]); - - int option = JOptionPane.showInternalConfirmDialog( - jalview.gui.Desktop.desktop, - MessageManager - .getString("label.remove_from_default_list"), - MessageManager - .getString("label.remove_user_defined_colour"), - JOptionPane.YES_NO_OPTION); - if (option == JOptionPane.YES_OPTION) - { - jalview.gui.UserDefinedColours - .removeColourFromDefaults(radioItem.getText()); - colourMenu.remove(radioItem); - } - else + offerRemoval(radioItem); + } + } + + @Override + public void mouseReleased(MouseEvent evt) + { + if (evt.isPopupTrigger()) // Windows + { + offerRemoval(radioItem); + } + } + + /** + * @param radioItem + */ + void offerRemoval(final JRadioButtonMenuItem radioItem) + { + radioItem.removeActionListener(radioItem.getActionListeners()[0]); + + int option = JOptionPane.showInternalConfirmDialog( + jalview.gui.Desktop.desktop, + MessageManager + .getString("label.remove_from_default_list"), + MessageManager + .getString("label.remove_user_defined_colour"), + JOptionPane.YES_NO_OPTION); + if (option == JOptionPane.YES_OPTION) + { + jalview.gui.UserDefinedColours + .removeColourFromDefaults(radioItem.getText()); + colourMenu.remove(radioItem); + } + else + { + radioItem.addActionListener(new ActionListener() { - radioItem.addActionListener(new ActionListener() + @Override + public void actionPerformed(ActionEvent evt) { - @Override - public void actionPerformed(ActionEvent evt) - { - userDefinedColour_actionPerformed(evt); - } - }); - } + userDefinedColour_actionPerformed(evt); + } + }); } } }); @@ -2030,7 +2047,19 @@ public class GAlignFrame extends JInternalFrame @Override public void mousePressed(MouseEvent e) { - tabbedPane_mousePressed(e); + if (e.isPopupTrigger()) // Mac + { + tabbedPane_mousePressed(e); + } + } + + @Override + public void mouseReleased(MouseEvent e) + { + if (e.isPopupTrigger()) // Windows + { + tabbedPane_mousePressed(e); + } } }); tabbedPane.addFocusListener(new FocusAdapter() diff --git a/src/jalview/jbgui/GCutAndPasteHtmlTransfer.java b/src/jalview/jbgui/GCutAndPasteHtmlTransfer.java index a9e3112..157dddd 100644 --- a/src/jalview/jbgui/GCutAndPasteHtmlTransfer.java +++ b/src/jalview/jbgui/GCutAndPasteHtmlTransfer.java @@ -106,6 +106,7 @@ public class GCutAndPasteHtmlTransfer extends JInternalFrame ok.setText(MessageManager.getString("label.new_window")); ok.addActionListener(new ActionListener() { + @Override public void actionPerformed(ActionEvent e) { ok_actionPerformed(e); @@ -114,6 +115,7 @@ public class GCutAndPasteHtmlTransfer extends JInternalFrame cancel.setText(MessageManager.getString("action.close")); cancel.addActionListener(new ActionListener() { + @Override public void actionPerformed(ActionEvent e) { cancel_actionPerformed(e); @@ -123,6 +125,7 @@ public class GCutAndPasteHtmlTransfer extends JInternalFrame close.setText(MessageManager.getString("action.close")); close.addActionListener(new ActionListener() { + @Override public void actionPerformed(ActionEvent e) { cancel_actionPerformed(e); @@ -137,6 +140,7 @@ public class GCutAndPasteHtmlTransfer extends JInternalFrame .getMenuShortcutKeyMask(), false)); selectAll.addActionListener(new ActionListener() { + @Override public void actionPerformed(ActionEvent e) { selectAll_actionPerformed(e); @@ -149,6 +153,7 @@ public class GCutAndPasteHtmlTransfer extends JInternalFrame .getMenuShortcutKeyMask(), false)); save.addActionListener(new ActionListener() { + @Override public void actionPerformed(ActionEvent e) { save_actionPerformed(e); @@ -163,15 +168,23 @@ public class GCutAndPasteHtmlTransfer extends JInternalFrame textarea.setFont(new java.awt.Font("Monospaced", Font.PLAIN, 12)); textarea.addMouseListener(new java.awt.event.MouseAdapter() { + @Override public void mousePressed(MouseEvent e) { textarea_mousePressed(e); } + + @Override + public void mouseReleased(MouseEvent e) + { + textarea_mousePressed(e); + } }); editMenu.setText(MessageManager.getString("action.edit")); copyItem.setText(MessageManager.getString("action.copy")); copyItem.addActionListener(new ActionListener() { + @Override public void actionPerformed(ActionEvent e) { copyItem_actionPerformed(e); diff --git a/src/jalview/jbgui/GCutAndPasteTransfer.java b/src/jalview/jbgui/GCutAndPasteTransfer.java index acf1581..21705f0 100755 --- a/src/jalview/jbgui/GCutAndPasteTransfer.java +++ b/src/jalview/jbgui/GCutAndPasteTransfer.java @@ -103,6 +103,7 @@ public class GCutAndPasteTransfer extends JInternalFrame ok.setText(MessageManager.getString("label.new_window")); ok.addActionListener(new ActionListener() { + @Override public void actionPerformed(ActionEvent e) { ok_actionPerformed(e); @@ -111,6 +112,7 @@ public class GCutAndPasteTransfer extends JInternalFrame cancel.setText(MessageManager.getString("action.close")); cancel.addActionListener(new ActionListener() { + @Override public void actionPerformed(ActionEvent e) { cancel_actionPerformed(e); @@ -124,6 +126,7 @@ public class GCutAndPasteTransfer extends JInternalFrame .getMenuShortcutKeyMask(), false)); selectAll.addActionListener(new ActionListener() { + @Override public void actionPerformed(ActionEvent e) { selectAll_actionPerformed(e); @@ -136,6 +139,7 @@ public class GCutAndPasteTransfer extends JInternalFrame .getMenuShortcutKeyMask(), false)); save.addActionListener(new ActionListener() { + @Override public void actionPerformed(ActionEvent e) { save_actionPerformed(e); @@ -152,15 +156,23 @@ public class GCutAndPasteTransfer extends JInternalFrame textarea.setFont(new java.awt.Font("Monospaced", Font.PLAIN, 12)); textarea.addMouseListener(new java.awt.event.MouseAdapter() { + @Override public void mousePressed(MouseEvent e) { - textarea_mousePressed(e); + textarea_mousePressed(e); // on Mac + } + + @Override + public void mouseReleased(MouseEvent e) + { + textarea_mousePressed(e); // on Windows } }); editMenu.setText(MessageManager.getString("action.edit")); pasteMenu.setText(MessageManager.getString("action.paste")); pasteMenu.addActionListener(new ActionListener() { + @Override public void actionPerformed(ActionEvent e) { pasteMenu_actionPerformed(e); @@ -169,6 +181,7 @@ public class GCutAndPasteTransfer extends JInternalFrame copyItem.setText(MessageManager.getString("action.copy")); copyItem.addActionListener(new ActionListener() { + @Override public void actionPerformed(ActionEvent e) { copyItem_actionPerformed(e); -- 1.7.10.2