X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fgui%2FPopupMenu.java;h=26c27599a290141feef005373d2fd918dbc16a29;hb=0eecb83722155f32d5eade88a5e8b4a5caca1a67;hp=776fcd2f0cba751c82b5977218f5f263211e09a4;hpb=4313fc0bf442a0668d74224f78080b1182acb20d;p=jalview.git diff --git a/src/jalview/gui/PopupMenu.java b/src/jalview/gui/PopupMenu.java index 776fcd2..26c2759 100644 --- a/src/jalview/gui/PopupMenu.java +++ b/src/jalview/gui/PopupMenu.java @@ -52,6 +52,7 @@ import jalview.util.GroupUrlLink.UrlStringTooLongException; import jalview.util.MessageManager; import jalview.util.StringUtils; import jalview.util.UrlLink; +import jalview.util.dialogrunner.RunResponse; import java.awt.Color; import java.awt.event.ActionEvent; @@ -1270,7 +1271,7 @@ public class PopupMenu extends JPopupMenu implements ColourChangeListener @Override public void actionPerformed(ActionEvent actionEvent) { - editSequence_actionPerformed(actionEvent); + editSequence_actionPerformed(); } }); makeReferenceSeq.setText( @@ -1749,30 +1750,27 @@ public class PopupMenu extends JPopupMenu implements ColourChangeListener } /** - * DOCUMENT ME! - * - * @param e - * DOCUMENT ME! + * Shows a dialog where group name and description may be edited */ protected void groupName_actionPerformed() { - SequenceGroup sg = getGroup(); EditNameDialog dialog = new EditNameDialog(sg.getName(), sg.getDescription(), - " " + MessageManager.getString("label.group_name") + " ", - MessageManager.getString("label.group_description") + " ", + MessageManager.getString("label.group_name"), + MessageManager.getString("label.group_description")); + dialog.showDialog(ap.alignFrame, MessageManager.getString("label.edit_group_name_description"), - ap.alignFrame); - - if (!dialog.accept) - { - return; - } - - sg.setName(dialog.getName()); - sg.setDescription(dialog.getDescription()); - refresh(); + new RunResponse(JvOptionPane.OK_OPTION) + { + @Override + public void run() + { + sg.setName(dialog.getName()); + sg.setDescription(dialog.getDescription()); + refresh(); + } + }); } /** @@ -1793,48 +1791,41 @@ public class PopupMenu extends JPopupMenu implements ColourChangeListener } /** - * DOCUMENT ME! - * - * @param e - * DOCUMENT ME! + * Shows a dialog where sequence name and description may be edited */ void sequenceName_actionPerformed() { EditNameDialog dialog = new EditNameDialog(sequence.getName(), sequence.getDescription(), - " " + MessageManager.getString("label.sequence_name") - + " ", - MessageManager.getString("label.sequence_description") + " ", + MessageManager.getString("label.sequence_name"), + MessageManager.getString("label.sequence_description")); + dialog.showDialog(ap.alignFrame, MessageManager.getString( "label.edit_sequence_name_description"), - ap.alignFrame); - - if (!dialog.accept) - { - return; - } - - if (dialog.getName() != null) - { - if (dialog.getName().indexOf(" ") > -1) - { - JvOptionPane.showMessageDialog(ap, - MessageManager - .getString("label.spaces_converted_to_backslashes"), - MessageManager - .getString("label.no_spaces_allowed_sequence_name"), - JvOptionPane.WARNING_MESSAGE); - } - - sequence.setName(dialog.getName().replace(' ', '_')); - ap.paintAlignment(false, false); - } - - sequence.setDescription(dialog.getDescription()); - - ap.av.firePropertyChange("alignment", null, - ap.av.getAlignment().getSequences()); - + new RunResponse(JvOptionPane.OK_OPTION) + { + @Override + public void run() + { + if (dialog.getName() != null) + { + if (dialog.getName().indexOf(" ") > -1) + { + JvOptionPane.showMessageDialog(ap, + MessageManager.getString( + "label.spaces_converted_to_underscores"), + MessageManager.getString( + "label.no_spaces_allowed_sequence_name"), + JvOptionPane.WARNING_MESSAGE); + } + sequence.setName(dialog.getName().replace(' ', '_')); + ap.paintAlignment(false, false); + } + sequence.setDescription(dialog.getDescription()); + ap.av.firePropertyChange("alignment", null, + ap.av.getAlignment().getSequences()); + } + }); } /** @@ -2078,7 +2069,12 @@ public class PopupMenu extends JPopupMenu implements ColourChangeListener } - public void editSequence_actionPerformed(ActionEvent actionEvent) + /** + * Shows a dialog where sequence characters may be edited. Any changes are + * applied, and added as an available 'Undo' item in the edit commands + * history. + */ + public void editSequence_actionPerformed() { SequenceGroup sg = ap.av.getSelectionGroup(); @@ -2092,24 +2088,28 @@ public class PopupMenu extends JPopupMenu implements ColourChangeListener EditNameDialog dialog = new EditNameDialog( sequence.getSequenceAsString(sg.getStartRes(), sg.getEndRes() + 1), - null, MessageManager.getString("label.edit_sequence"), null, + null, MessageManager.getString("label.edit_sequence"), null); + dialog.showDialog(ap.alignFrame, MessageManager.getString("label.edit_sequence"), - ap.alignFrame); - - if (dialog.accept) - { - EditCommand editCommand = new EditCommand( - MessageManager.getString("label.edit_sequences"), - Action.REPLACE, - dialog.getName().replace(' ', ap.av.getGapCharacter()), - sg.getSequencesAsArray(ap.av.getHiddenRepSequences()), - sg.getStartRes(), sg.getEndRes() + 1, ap.av.getAlignment()); - - ap.alignFrame.addHistoryItem(editCommand); - - ap.av.firePropertyChange("alignment", null, - ap.av.getAlignment().getSequences()); - } + new RunResponse(JvOptionPane.OK_OPTION) + { + @Override + public void run() + { + EditCommand editCommand = new EditCommand( + MessageManager.getString("label.edit_sequences"), + Action.REPLACE, + dialog.getName().replace(' ', + ap.av.getGapCharacter()), + sg.getSequencesAsArray( + ap.av.getHiddenRepSequences()), + sg.getStartRes(), sg.getEndRes() + 1, + ap.av.getAlignment()); + ap.alignFrame.addHistoryItem(editCommand); + ap.av.firePropertyChange("alignment", null, + ap.av.getAlignment().getSequences()); + } + }); } }