2 * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
3 * Copyright (C) $$Year-Rel$$ The Jalview Authors
5 * This file is part of Jalview.
7 * Jalview is free software: you can redistribute it and/or
8 * modify it under the terms of the GNU General Public License
9 * as published by the Free Software Foundation, either version 3
10 * of the License, or (at your option) any later version.
12 * Jalview is distributed in the hope that it will be useful, but
13 * WITHOUT ANY WARRANTY; without even the implied warranty
14 * of MERCHANTABILITY or FITNESS FOR A PARTICULAR
15 * PURPOSE. See the GNU General Public License for more details.
17 * You should have received a copy of the GNU General Public License
18 * along with Jalview. If not, see <http://www.gnu.org/licenses/>.
19 * The Jalview Authors are detailed in the 'AUTHORS' file.
21 package jalview.jbgui;
23 import jalview.analysis.AnnotationSorter.SequenceAnnotationOrder;
24 import jalview.api.SplitContainerI;
25 import jalview.bin.Cache;
26 import jalview.gui.Desktop;
27 import jalview.gui.JvOptionPane;
28 import jalview.gui.JvSwingUtils;
29 import jalview.gui.Preferences;
30 import jalview.gui.UserDefinedColours;
31 import jalview.io.FileFormat;
32 import jalview.schemes.JalviewColourScheme;
33 import jalview.schemes.ResidueColourScheme;
34 import jalview.schemes.UserColourScheme;
35 import jalview.util.MessageManager;
36 import jalview.util.Platform;
38 import java.awt.BorderLayout;
39 import java.awt.Color;
40 import java.awt.Component;
41 import java.awt.GridLayout;
42 import java.awt.Toolkit;
43 import java.awt.event.ActionEvent;
44 import java.awt.event.ActionListener;
45 import java.awt.event.FocusAdapter;
46 import java.awt.event.FocusEvent;
47 import java.awt.event.KeyEvent;
48 import java.awt.event.MouseAdapter;
49 import java.awt.event.MouseEvent;
50 import java.util.HashMap;
53 import javax.swing.BorderFactory;
54 import javax.swing.ButtonGroup;
55 import javax.swing.JCheckBoxMenuItem;
56 import javax.swing.JInternalFrame;
57 import javax.swing.JLabel;
58 import javax.swing.JMenu;
59 import javax.swing.JMenuBar;
60 import javax.swing.JMenuItem;
61 import javax.swing.JPanel;
62 import javax.swing.JRadioButtonMenuItem;
63 import javax.swing.JTabbedPane;
64 import javax.swing.KeyStroke;
65 import javax.swing.event.ChangeEvent;
66 import javax.swing.event.MenuEvent;
67 import javax.swing.event.MenuListener;
69 public class GAlignFrame extends JInternalFrame
71 protected JMenuBar alignFrameMenuBar = new JMenuBar();
73 protected JMenuItem closeMenuItem = new JMenuItem();
75 protected JMenu colourMenu = new JMenu();
77 protected JMenu webService = new JMenu();
79 protected JMenuItem webServiceNoServices;
81 protected JCheckBoxMenuItem viewBoxesMenuItem = new JCheckBoxMenuItem();
83 protected JCheckBoxMenuItem viewTextMenuItem = new JCheckBoxMenuItem();
85 protected JMenu sortByAnnotScore = new JMenu();
87 public JLabel statusBar = new JLabel();
89 protected JMenu outputTextboxMenu = new JMenu();
91 protected JRadioButtonMenuItem textColour;
93 protected JRadioButtonMenuItem clustalColour;
95 protected JRadioButtonMenuItem zappoColour;
97 protected JRadioButtonMenuItem taylorColour;
99 protected JRadioButtonMenuItem hydrophobicityColour;
101 protected JRadioButtonMenuItem helixColour;
103 protected JRadioButtonMenuItem strandColour;
105 protected JRadioButtonMenuItem turnColour;
107 protected JRadioButtonMenuItem buriedColour;
109 protected JRadioButtonMenuItem userDefinedColour;
111 protected JRadioButtonMenuItem PIDColour;
113 protected JRadioButtonMenuItem BLOSUM62Colour;
115 protected JRadioButtonMenuItem nucleotideColour;
117 protected JRadioButtonMenuItem purinePyrimidineColour;
119 protected JRadioButtonMenuItem RNAInteractionColour;
121 // protected JRadioButtonMenuItem covariationColour;
123 protected JRadioButtonMenuItem tcoffeeColour;
125 protected JCheckBoxMenuItem annotationPanelMenuItem = new JCheckBoxMenuItem();
127 protected JCheckBoxMenuItem colourTextMenuItem = new JCheckBoxMenuItem();
129 protected JCheckBoxMenuItem showNonconservedMenuItem = new JCheckBoxMenuItem();
131 protected JMenuItem undoMenuItem = new JMenuItem();
133 protected JMenuItem redoMenuItem = new JMenuItem();
135 protected JCheckBoxMenuItem conservationMenuItem;
137 JRadioButtonMenuItem noColourmenuItem;
139 protected JCheckBoxMenuItem wrapMenuItem = new JCheckBoxMenuItem();
141 protected JCheckBoxMenuItem renderGapsMenuItem = new JCheckBoxMenuItem();
143 protected JCheckBoxMenuItem abovePIDThreshold;
145 public JCheckBoxMenuItem showSeqFeatures = new JCheckBoxMenuItem();
147 JMenuItem copy = new JMenuItem();
149 JMenuItem cut = new JMenuItem();
151 JMenu pasteMenu = new JMenu();
153 protected JCheckBoxMenuItem applyToAllGroups;
155 protected JCheckBoxMenuItem seqLimits = new JCheckBoxMenuItem();
157 protected JCheckBoxMenuItem scaleAbove = new JCheckBoxMenuItem();
159 protected JCheckBoxMenuItem scaleLeft = new JCheckBoxMenuItem();
161 protected JCheckBoxMenuItem scaleRight = new JCheckBoxMenuItem();
163 protected JMenuItem modifyPID;
165 protected JMenuItem modifyConservation;
167 protected JMenuItem annotationColour;
169 protected JMenu sortByTreeMenu = new JMenu();
171 protected JMenu sort = new JMenu();
173 protected JMenu calculateTree = new JMenu();
175 protected JCheckBoxMenuItem padGapsMenuitem = new JCheckBoxMenuItem();
177 protected JCheckBoxMenuItem showNpFeatsMenuitem = new JCheckBoxMenuItem();
179 protected JCheckBoxMenuItem showDbRefsMenuitem = new JCheckBoxMenuItem();
181 protected ButtonGroup colours = new ButtonGroup();
183 protected JMenuItem showTranslation = new JMenuItem();
185 protected JMenuItem showReverse = new JMenuItem();
187 protected JMenuItem showReverseComplement = new JMenuItem();
189 protected JMenu showProducts = new JMenu();
191 protected JMenuItem runGroovy = new JMenuItem();
193 protected JMenuItem rnahelicesColour;
195 protected JCheckBoxMenuItem autoCalculate = new JCheckBoxMenuItem();
197 protected JCheckBoxMenuItem sortByTree = new JCheckBoxMenuItem();
199 protected JCheckBoxMenuItem listenToViewSelections = new JCheckBoxMenuItem();
201 protected JPanel statusPanel = new JPanel();
203 protected JMenuItem showAllSeqAnnotations = new JMenuItem();
205 protected JMenuItem hideAllSeqAnnotations = new JMenuItem();
207 protected JMenuItem showAllAlAnnotations = new JMenuItem();
209 protected JMenuItem hideAllAlAnnotations = new JMenuItem();
211 protected JCheckBoxMenuItem showComplementMenuItem = new JCheckBoxMenuItem();
213 protected JCheckBoxMenuItem hiddenMarkers = new JCheckBoxMenuItem();
215 protected JTabbedPane tabbedPane = new JTabbedPane();
217 protected JMenuItem reload = new JMenuItem();
219 protected JMenu formatMenu = new JMenu();
221 protected JCheckBoxMenuItem idRightAlign = new JCheckBoxMenuItem();
223 protected JCheckBoxMenuItem centreColumnLabelsMenuItem = new JCheckBoxMenuItem();
225 protected JCheckBoxMenuItem followHighlightMenuItem = new JCheckBoxMenuItem();
227 protected JMenuItem gatherViews = new JMenuItem();
229 protected JMenuItem expandViews = new JMenuItem();
231 protected JCheckBoxMenuItem showGroupConsensus = new JCheckBoxMenuItem();
233 protected JCheckBoxMenuItem showGroupConservation = new JCheckBoxMenuItem();
235 protected JCheckBoxMenuItem showConsensusHistogram = new JCheckBoxMenuItem();
237 protected JCheckBoxMenuItem showSequenceLogo = new JCheckBoxMenuItem();
239 protected JCheckBoxMenuItem normaliseSequenceLogo = new JCheckBoxMenuItem();
241 protected JCheckBoxMenuItem applyAutoAnnotationSettings = new JCheckBoxMenuItem();
243 private SequenceAnnotationOrder annotationSortOrder;
245 private boolean showAutoCalculatedAbove = false;
247 private Map<KeyStroke, JMenuItem> accelerators = new HashMap<KeyStroke, JMenuItem>();
249 private SplitContainerI splitFrame;
256 setJMenuBar(alignFrameMenuBar);
258 // dynamically fill save as menu with available formats
259 for (String ff : FileFormat.getWritableFormats(true))
261 JMenuItem item = new JMenuItem(ff);
263 item.addActionListener(new ActionListener()
266 public void actionPerformed(ActionEvent e)
268 outputText_actionPerformed(e);
272 outputTextboxMenu.add(item);
274 } catch (Exception e)
276 System.err.println(e.toString());
279 if (!Platform.isAMac())
281 closeMenuItem.setMnemonic('C');
282 outputTextboxMenu.setMnemonic('T');
283 undoMenuItem.setMnemonic('Z');
284 redoMenuItem.setMnemonic('0');
285 copy.setMnemonic('C');
286 cut.setMnemonic('U');
287 pasteMenu.setMnemonic('P');
288 reload.setMnemonic('R');
293 * Marks as selected the colour menu item matching the given name, or the
294 * first item ('None') if no match is found
298 protected void setColourSelected(String colourName)
300 noColourmenuItem.setSelected(true);
301 if (colourName == null)
307 * look for a radio button with a name that matches the colour name
308 * (note the button text may not as it may be internationalised)
310 for (Component menuItem : colourMenu.getMenuComponents())
312 if (menuItem instanceof JRadioButtonMenuItem)
314 if (colourName.equals(((JRadioButtonMenuItem) menuItem).getName()))
316 ((JRadioButtonMenuItem) menuItem).setSelected(true);
323 private void jbInit() throws Exception
328 JMenuItem saveAs = new JMenuItem(
329 MessageManager.getString("action.save_as"));
330 ActionListener al = new ActionListener()
333 public void actionPerformed(ActionEvent e)
335 saveAs_actionPerformed(e);
339 // FIXME getDefaultToolkit throws an exception in Headless mode
340 KeyStroke keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_S, Toolkit
341 .getDefaultToolkit().getMenuShortcutKeyMask()
342 | KeyEvent.SHIFT_MASK, false);
343 addMenuActionAndAccelerator(keyStroke, saveAs, al);
345 closeMenuItem.setText(MessageManager.getString("action.close"));
346 keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_W, Toolkit
347 .getDefaultToolkit().getMenuShortcutKeyMask(), false);
348 al = new ActionListener()
351 public void actionPerformed(ActionEvent e)
353 closeMenuItem_actionPerformed(false);
356 addMenuActionAndAccelerator(keyStroke, closeMenuItem, al);
358 JMenu editMenu = new JMenu(MessageManager.getString("action.edit"));
359 JMenu viewMenu = new JMenu(MessageManager.getString("action.view"));
360 JMenu annotationsMenu = new JMenu(
361 MessageManager.getString("action.annotations"));
362 JMenu showMenu = new JMenu(MessageManager.getString("action.show"));
363 colourMenu.setText(MessageManager.getString("action.colour"));
364 JMenu calculateMenu = new JMenu(
365 MessageManager.getString("action.calculate"));
366 webService.setText(MessageManager.getString("action.web_service"));
367 JMenuItem selectAllSequenceMenuItem = new JMenuItem(
368 MessageManager.getString("action.select_all"));
369 keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_A, Toolkit
370 .getDefaultToolkit().getMenuShortcutKeyMask(), false);
371 al = new ActionListener()
374 public void actionPerformed(ActionEvent e)
376 selectAllSequenceMenuItem_actionPerformed(e);
379 addMenuActionAndAccelerator(keyStroke, selectAllSequenceMenuItem, al);
381 JMenuItem deselectAllSequenceMenuItem = new JMenuItem(
382 MessageManager.getString("action.deselect_all"));
383 keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_ESCAPE, 0, false);
384 al = new ActionListener()
387 public void actionPerformed(ActionEvent e)
389 deselectAllSequenceMenuItem_actionPerformed(e);
392 addMenuActionAndAccelerator(keyStroke, deselectAllSequenceMenuItem, al);
394 JMenuItem invertSequenceMenuItem = new JMenuItem(
395 MessageManager.getString("action.invert_sequence_selection"));
396 keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_I, Toolkit
397 .getDefaultToolkit().getMenuShortcutKeyMask(), false);
398 al = new ActionListener()
401 public void actionPerformed(ActionEvent e)
403 invertSequenceMenuItem_actionPerformed(e);
406 addMenuActionAndAccelerator(keyStroke, invertSequenceMenuItem, al);
408 JMenuItem grpsFromSelection = new JMenuItem(
409 MessageManager.getString("action.make_groups_selection"));
410 grpsFromSelection.addActionListener(new ActionListener()
413 public void actionPerformed(ActionEvent e)
415 makeGrpsFromSelection_actionPerformed(e);
418 JMenuItem expandAlignment = new JMenuItem(
419 MessageManager.getString("action.view_flanking_regions"));
420 expandAlignment.setToolTipText(MessageManager
421 .getString("label.view_flanking_regions"));
422 expandAlignment.addActionListener(new ActionListener()
425 public void actionPerformed(ActionEvent e)
430 JMenuItem remove2LeftMenuItem = new JMenuItem(
431 MessageManager.getString("action.remove_left"));
432 keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_L, Toolkit
433 .getDefaultToolkit().getMenuShortcutKeyMask(), false);
434 al = new ActionListener()
437 public void actionPerformed(ActionEvent e)
439 remove2LeftMenuItem_actionPerformed(e);
442 addMenuActionAndAccelerator(keyStroke, remove2LeftMenuItem, al);
444 JMenuItem remove2RightMenuItem = new JMenuItem(
445 MessageManager.getString("action.remove_right"));
446 keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_R, Toolkit
447 .getDefaultToolkit().getMenuShortcutKeyMask(), false);
448 al = new ActionListener()
451 public void actionPerformed(ActionEvent e)
453 remove2RightMenuItem_actionPerformed(e);
456 addMenuActionAndAccelerator(keyStroke, remove2RightMenuItem, al);
458 JMenuItem removeGappedColumnMenuItem = new JMenuItem(
459 MessageManager.getString("action.remove_empty_columns"));
460 keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_E, Toolkit
461 .getDefaultToolkit().getMenuShortcutKeyMask(), false);
462 al = new ActionListener()
465 public void actionPerformed(ActionEvent e)
467 removeGappedColumnMenuItem_actionPerformed(e);
470 addMenuActionAndAccelerator(keyStroke, removeGappedColumnMenuItem, al);
472 JMenuItem removeAllGapsMenuItem = new JMenuItem(
473 MessageManager.getString("action.remove_all_gaps"));
474 keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_E, Toolkit
475 .getDefaultToolkit().getMenuShortcutKeyMask()
476 | KeyEvent.SHIFT_MASK, false);
477 al = new ActionListener()
480 public void actionPerformed(ActionEvent e)
482 removeAllGapsMenuItem_actionPerformed(e);
485 addMenuActionAndAccelerator(keyStroke, removeAllGapsMenuItem, al);
487 JMenuItem justifyLeftMenuItem = new JMenuItem(
488 MessageManager.getString("action.left_justify_alignment"));
489 justifyLeftMenuItem.addActionListener(new ActionListener()
492 public void actionPerformed(ActionEvent e)
494 justifyLeftMenuItem_actionPerformed(e);
497 JMenuItem justifyRightMenuItem = new JMenuItem(
498 MessageManager.getString("action.right_justify_alignment"));
499 justifyRightMenuItem.addActionListener(new ActionListener()
502 public void actionPerformed(ActionEvent e)
504 justifyRightMenuItem_actionPerformed(e);
507 viewBoxesMenuItem.setText(MessageManager.getString("action.boxes"));
508 viewBoxesMenuItem.setState(true);
509 viewBoxesMenuItem.addActionListener(new ActionListener()
512 public void actionPerformed(ActionEvent e)
514 viewBoxesMenuItem_actionPerformed(e);
517 viewTextMenuItem.setText(MessageManager.getString("action.text"));
518 viewTextMenuItem.setState(true);
519 viewTextMenuItem.addActionListener(new ActionListener()
522 public void actionPerformed(ActionEvent e)
524 viewTextMenuItem_actionPerformed(e);
527 showNonconservedMenuItem.setText(MessageManager
528 .getString("label.show_non_conserved"));
529 showNonconservedMenuItem.setState(false);
530 showNonconservedMenuItem.addActionListener(new ActionListener()
533 public void actionPerformed(ActionEvent e)
535 showUnconservedMenuItem_actionPerformed(e);
538 JMenuItem sortPairwiseMenuItem = new JMenuItem(
539 MessageManager.getString("action.by_pairwise_id"));
540 sortPairwiseMenuItem.addActionListener(new ActionListener()
543 public void actionPerformed(ActionEvent e)
545 sortPairwiseMenuItem_actionPerformed(e);
548 JMenuItem sortIDMenuItem = new JMenuItem(
549 MessageManager.getString("action.by_id"));
550 sortIDMenuItem.addActionListener(new ActionListener()
553 public void actionPerformed(ActionEvent e)
555 sortIDMenuItem_actionPerformed(e);
558 JMenuItem sortLengthMenuItem = new JMenuItem(
559 MessageManager.getString("action.by_length"));
560 sortLengthMenuItem.addActionListener(new ActionListener()
563 public void actionPerformed(ActionEvent e)
565 sortLengthMenuItem_actionPerformed(e);
568 JMenuItem sortGroupMenuItem = new JMenuItem(
569 MessageManager.getString("action.by_group"));
570 sortGroupMenuItem.addActionListener(new ActionListener()
573 public void actionPerformed(ActionEvent e)
575 sortGroupMenuItem_actionPerformed(e);
579 JMenuItem removeRedundancyMenuItem = new JMenuItem(
580 MessageManager.getString("action.remove_redundancy"));
581 keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_D, Toolkit
582 .getDefaultToolkit().getMenuShortcutKeyMask(), false);
583 al = new ActionListener()
586 public void actionPerformed(ActionEvent e)
588 removeRedundancyMenuItem_actionPerformed(e);
591 addMenuActionAndAccelerator(keyStroke, removeRedundancyMenuItem, al);
593 JMenuItem pairwiseAlignmentMenuItem = new JMenuItem(
594 MessageManager.getString("action.pairwise_alignment"));
595 pairwiseAlignmentMenuItem.addActionListener(new ActionListener()
598 public void actionPerformed(ActionEvent e)
600 pairwiseAlignmentMenuItem_actionPerformed(e);
603 JMenuItem PCAMenuItem = new JMenuItem(
604 MessageManager.getString("label.principal_component_analysis"));
605 PCAMenuItem.addActionListener(new ActionListener()
608 public void actionPerformed(ActionEvent e)
610 PCAMenuItem_actionPerformed(e);
613 JMenuItem averageDistanceTreeMenuItem = new JMenuItem(
614 MessageManager.getString("label.average_distance_identity"));
615 averageDistanceTreeMenuItem.addActionListener(new ActionListener()
618 public void actionPerformed(ActionEvent e)
620 averageDistanceTreeMenuItem_actionPerformed(e);
623 JMenuItem neighbourTreeMenuItem = new JMenuItem(
624 MessageManager.getString("label.neighbour_joining_identity"));
625 neighbourTreeMenuItem.addActionListener(new ActionListener()
628 public void actionPerformed(ActionEvent e)
630 neighbourTreeMenuItem_actionPerformed(e);
634 this.getContentPane().setLayout(new BorderLayout());
635 alignFrameMenuBar.setFont(new java.awt.Font("Verdana", 0, 11));
636 statusBar.setBackground(Color.white);
637 statusBar.setFont(new java.awt.Font("Verdana", 0, 11));
638 statusBar.setBorder(BorderFactory.createLineBorder(Color.black));
639 statusBar.setText(MessageManager.getString("label.status_bar"));
640 outputTextboxMenu.setText(MessageManager
641 .getString("label.out_to_textbox"));
644 JMenuItem avDistanceTreeBlosumMenuItem = new JMenuItem(
645 MessageManager.getString("label.average_distance_bloslum62"));
646 avDistanceTreeBlosumMenuItem.addActionListener(new ActionListener()
649 public void actionPerformed(ActionEvent e)
651 avTreeBlosumMenuItem_actionPerformed(e);
654 JMenuItem njTreeBlosumMenuItem = new JMenuItem(
655 MessageManager.getString("label.neighbour_blosum62"));
656 njTreeBlosumMenuItem.addActionListener(new ActionListener()
659 public void actionPerformed(ActionEvent e)
661 njTreeBlosumMenuItem_actionPerformed(e);
664 annotationPanelMenuItem.setActionCommand("");
665 annotationPanelMenuItem.setText(MessageManager
666 .getString("label.show_annotations"));
667 annotationPanelMenuItem.setState(Cache.getDefault("SHOW_ANNOTATIONS",
669 annotationPanelMenuItem.addActionListener(new ActionListener()
672 public void actionPerformed(ActionEvent e)
674 annotationPanelMenuItem_actionPerformed(e);
677 showAllAlAnnotations.setText(MessageManager
678 .getString("label.show_all_al_annotations"));
679 final boolean isAnnotationPanelShown = annotationPanelMenuItem
681 showAllAlAnnotations.setEnabled(isAnnotationPanelShown);
682 showAllAlAnnotations.addActionListener(new ActionListener()
685 public void actionPerformed(ActionEvent e)
687 showAllAnnotations_actionPerformed(false, true);
690 hideAllAlAnnotations.setText(MessageManager
691 .getString("label.hide_all_al_annotations"));
692 hideAllAlAnnotations.setEnabled(isAnnotationPanelShown);
693 hideAllAlAnnotations.addActionListener(new ActionListener()
696 public void actionPerformed(ActionEvent e)
698 hideAllAnnotations_actionPerformed(false, true);
701 showAllSeqAnnotations.setText(MessageManager
702 .getString("label.show_all_seq_annotations"));
703 showAllSeqAnnotations.setEnabled(isAnnotationPanelShown);
704 showAllSeqAnnotations.addActionListener(new ActionListener()
707 public void actionPerformed(ActionEvent e)
709 showAllAnnotations_actionPerformed(true, false);
712 hideAllSeqAnnotations.setText(MessageManager
713 .getString("label.hide_all_seq_annotations"));
714 hideAllSeqAnnotations.setEnabled(isAnnotationPanelShown);
715 hideAllSeqAnnotations.addActionListener(new ActionListener()
718 public void actionPerformed(ActionEvent e)
720 hideAllAnnotations_actionPerformed(true, false);
723 SequenceAnnotationOrder sortAnnotationsBy = SequenceAnnotationOrder
724 .valueOf(Cache.getDefault(Preferences.SORT_ANNOTATIONS,
725 SequenceAnnotationOrder.NONE.name()));
726 final JCheckBoxMenuItem sortAnnBySequence = new JCheckBoxMenuItem(
727 MessageManager.getString("label.sort_annotations_by_sequence"));
728 final JCheckBoxMenuItem sortAnnByLabel = new JCheckBoxMenuItem(
729 MessageManager.getString("label.sort_annotations_by_label"));
732 .setSelected(sortAnnotationsBy == SequenceAnnotationOrder.SEQUENCE_AND_LABEL);
733 sortAnnBySequence.addActionListener(new ActionListener()
736 public void actionPerformed(ActionEvent e)
738 boolean newState = sortAnnBySequence.getState();
739 sortAnnByLabel.setSelected(false);
740 setAnnotationSortOrder(newState ? SequenceAnnotationOrder.SEQUENCE_AND_LABEL
741 : SequenceAnnotationOrder.NONE);
742 sortAnnotations_actionPerformed();
746 .setSelected(sortAnnotationsBy == SequenceAnnotationOrder.LABEL_AND_SEQUENCE);
747 sortAnnByLabel.addActionListener(new ActionListener()
750 public void actionPerformed(ActionEvent e)
752 boolean newState = sortAnnByLabel.getState();
753 sortAnnBySequence.setSelected(false);
754 setAnnotationSortOrder(newState ? SequenceAnnotationOrder.LABEL_AND_SEQUENCE
755 : SequenceAnnotationOrder.NONE);
756 sortAnnotations_actionPerformed();
759 colourTextMenuItem = new JCheckBoxMenuItem(
761 .getString("label.colour_text"));
762 colourTextMenuItem.addActionListener(new ActionListener()
765 public void actionPerformed(ActionEvent e)
767 colourTextMenuItem_actionPerformed(e);
771 JMenuItem htmlMenuItem = new JMenuItem(
772 MessageManager.getString("label.html"));
773 htmlMenuItem.addActionListener(new ActionListener()
776 public void actionPerformed(ActionEvent e)
778 htmlMenuItem_actionPerformed(e);
782 JMenuItem createBioJS = new JMenuItem(
783 MessageManager.getString("label.biojs_html_export"));
784 createBioJS.addActionListener(new java.awt.event.ActionListener()
787 public void actionPerformed(ActionEvent e)
789 bioJSMenuItem_actionPerformed(e);
793 JMenuItem overviewMenuItem = new JMenuItem(
794 MessageManager.getString("label.overview_window"));
795 overviewMenuItem.addActionListener(new ActionListener()
798 public void actionPerformed(ActionEvent e)
800 overviewMenuItem_actionPerformed(e);
804 undoMenuItem.setEnabled(false);
805 undoMenuItem.setText(MessageManager.getString("action.undo"));
806 keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_Z, Toolkit
807 .getDefaultToolkit().getMenuShortcutKeyMask(), false);
808 al = new ActionListener()
811 public void actionPerformed(ActionEvent e)
813 undoMenuItem_actionPerformed(e);
816 addMenuActionAndAccelerator(keyStroke, undoMenuItem, al);
818 redoMenuItem.setEnabled(false);
819 redoMenuItem.setText(MessageManager.getString("action.redo"));
820 keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_Y, Toolkit
821 .getDefaultToolkit().getMenuShortcutKeyMask(), false);
822 al = new ActionListener()
825 public void actionPerformed(ActionEvent e)
827 redoMenuItem_actionPerformed(e);
830 addMenuActionAndAccelerator(keyStroke, redoMenuItem, al);
832 wrapMenuItem.setText(MessageManager.getString("label.wrap"));
833 wrapMenuItem.addActionListener(new ActionListener()
836 public void actionPerformed(ActionEvent e)
838 wrapMenuItem_actionPerformed(e);
842 JMenuItem printMenuItem = new JMenuItem(
843 MessageManager.getString("action.print"));
844 keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_P, Toolkit
845 .getDefaultToolkit().getMenuShortcutKeyMask(), false);
846 al = new ActionListener()
849 public void actionPerformed(ActionEvent e)
851 printMenuItem_actionPerformed(e);
854 addMenuActionAndAccelerator(keyStroke, printMenuItem, al);
857 .setText(MessageManager.getString("action.show_gaps"));
858 renderGapsMenuItem.setState(true);
859 renderGapsMenuItem.addActionListener(new ActionListener()
862 public void actionPerformed(ActionEvent e)
864 renderGapsMenuItem_actionPerformed(e);
868 JMenuItem findMenuItem = new JMenuItem(
869 MessageManager.getString("action.find"));
870 keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_F, Toolkit
871 .getDefaultToolkit().getMenuShortcutKeyMask(), false);
872 findMenuItem.setToolTipText(JvSwingUtils.wrapTooltip(true,
873 MessageManager.getString("label.find_tip")));
874 al = new ActionListener()
877 public void actionPerformed(ActionEvent e)
879 findMenuItem_actionPerformed(e);
882 addMenuActionAndAccelerator(keyStroke, findMenuItem, al);
884 showSeqFeatures.setText(MessageManager
885 .getString("label.show_sequence_features"));
886 showSeqFeatures.addActionListener(new ActionListener()
889 public void actionPerformed(ActionEvent actionEvent)
891 showSeqFeatures_actionPerformed(actionEvent);
895 * showSeqFeaturesHeight.setText("Vary Sequence Feature Height");
896 * showSeqFeaturesHeight.addActionListener(new ActionListener() { public
897 * void actionPerformed(ActionEvent actionEvent) {
898 * showSeqFeaturesHeight_actionPerformed(actionEvent); } });
900 showDbRefsMenuitem.setText(MessageManager
901 .getString("label.show_database_refs"));
902 showDbRefsMenuitem.addActionListener(new ActionListener()
906 public void actionPerformed(ActionEvent e)
908 showDbRefs_actionPerformed(e);
912 showNpFeatsMenuitem.setText(MessageManager
913 .getString("label.show_non_positional_features"));
914 showNpFeatsMenuitem.addActionListener(new ActionListener()
918 public void actionPerformed(ActionEvent e)
920 showNpFeats_actionPerformed(e);
924 showGroupConservation.setText(MessageManager
925 .getString("label.group_conservation"));
926 showGroupConservation.addActionListener(new ActionListener()
930 public void actionPerformed(ActionEvent e)
932 showGroupConservation_actionPerformed(e);
937 showGroupConsensus.setText(MessageManager
938 .getString("label.group_consensus"));
939 showGroupConsensus.addActionListener(new ActionListener()
943 public void actionPerformed(ActionEvent e)
945 showGroupConsensus_actionPerformed(e);
949 showConsensusHistogram.setText(MessageManager
950 .getString("label.show_consensus_histogram"));
951 showConsensusHistogram.addActionListener(new ActionListener()
955 public void actionPerformed(ActionEvent e)
957 showConsensusHistogram_actionPerformed(e);
961 showSequenceLogo.setText(MessageManager
962 .getString("label.show_consensus_logo"));
963 showSequenceLogo.addActionListener(new ActionListener()
967 public void actionPerformed(ActionEvent e)
969 showSequenceLogo_actionPerformed(e);
973 normaliseSequenceLogo.setText(MessageManager
974 .getString("label.norm_consensus_logo"));
975 normaliseSequenceLogo.addActionListener(new ActionListener()
979 public void actionPerformed(ActionEvent e)
981 normaliseSequenceLogo_actionPerformed(e);
985 applyAutoAnnotationSettings.setText(MessageManager
986 .getString("label.apply_all_groups"));
987 applyAutoAnnotationSettings.setState(false);
988 applyAutoAnnotationSettings.setVisible(true);
989 applyAutoAnnotationSettings.addActionListener(new ActionListener()
992 public void actionPerformed(ActionEvent e)
994 applyAutoAnnotationSettings_actionPerformed(e);
998 ButtonGroup buttonGroup = new ButtonGroup();
999 final JRadioButtonMenuItem showAutoFirst = new JRadioButtonMenuItem(
1000 MessageManager.getString("label.show_first"));
1001 final JRadioButtonMenuItem showAutoLast = new JRadioButtonMenuItem(
1002 MessageManager.getString("label.show_last"));
1003 buttonGroup.add(showAutoFirst);
1004 buttonGroup.add(showAutoLast);
1005 final boolean autoFirst = Cache.getDefault(
1006 Preferences.SHOW_AUTOCALC_ABOVE, false);
1007 showAutoFirst.setSelected(autoFirst);
1008 setShowAutoCalculatedAbove(autoFirst);
1009 showAutoFirst.addActionListener(new ActionListener()
1012 public void actionPerformed(ActionEvent e)
1014 setShowAutoCalculatedAbove(showAutoFirst.isSelected());
1015 sortAnnotations_actionPerformed();
1018 showAutoLast.setSelected(!showAutoFirst.isSelected());
1019 showAutoLast.addActionListener(new ActionListener()
1022 public void actionPerformed(ActionEvent e)
1024 setShowAutoCalculatedAbove(!showAutoLast.isSelected());
1025 sortAnnotations_actionPerformed();
1029 JMenuItem deleteGroups = new JMenuItem(
1030 MessageManager.getString("action.undefine_groups"));
1031 keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_U, Toolkit
1032 .getDefaultToolkit().getMenuShortcutKeyMask(), false);
1033 al = new ActionListener()
1036 public void actionPerformed(ActionEvent e)
1038 deleteGroups_actionPerformed(e);
1041 addMenuActionAndAccelerator(keyStroke, deleteGroups, al);
1043 JMenuItem annotationColumn = new JMenuItem(
1044 MessageManager.getString("action.select_by_annotation"));
1045 annotationColumn.addActionListener(new ActionListener()
1048 public void actionPerformed(ActionEvent e)
1050 annotationColumn_actionPerformed(e);
1054 JMenuItem createGroup = new JMenuItem(
1055 MessageManager.getString("action.create_groups"));
1056 keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_G, Toolkit
1057 .getDefaultToolkit().getMenuShortcutKeyMask(), false);
1058 al = new ActionListener()
1061 public void actionPerformed(ActionEvent e)
1063 createGroup_actionPerformed(e);
1066 addMenuActionAndAccelerator(keyStroke, createGroup, al);
1068 JMenuItem unGroup = new JMenuItem(
1069 MessageManager.getString("action.remove_group"));
1070 keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_G, Toolkit
1071 .getDefaultToolkit().getMenuShortcutKeyMask()
1072 | KeyEvent.SHIFT_MASK, false);
1073 al = new ActionListener()
1076 public void actionPerformed(ActionEvent e)
1078 unGroup_actionPerformed(e);
1081 addMenuActionAndAccelerator(keyStroke, unGroup, al);
1083 copy.setText(MessageManager.getString("action.copy"));
1084 keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_C, Toolkit
1085 .getDefaultToolkit().getMenuShortcutKeyMask(), false);
1087 al = new ActionListener()
1090 public void actionPerformed(ActionEvent e)
1092 copy_actionPerformed(e);
1095 addMenuActionAndAccelerator(keyStroke, copy, al);
1097 cut.setText(MessageManager.getString("action.cut"));
1098 keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_X, Toolkit
1099 .getDefaultToolkit().getMenuShortcutKeyMask(), false);
1100 al = new ActionListener()
1103 public void actionPerformed(ActionEvent e)
1105 cut_actionPerformed(e);
1108 addMenuActionAndAccelerator(keyStroke, cut, al);
1110 JMenuItem delete = new JMenuItem(
1111 MessageManager.getString("action.delete"));
1112 delete.addActionListener(new ActionListener()
1115 public void actionPerformed(ActionEvent e)
1117 delete_actionPerformed(e);
1121 pasteMenu.setText(MessageManager.getString("action.paste"));
1122 JMenuItem pasteNew = new JMenuItem(
1123 MessageManager.getString("label.to_new_alignment"));
1124 keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_V, Toolkit
1125 .getDefaultToolkit().getMenuShortcutKeyMask()
1126 | KeyEvent.SHIFT_MASK, false);
1127 al = new ActionListener()
1130 public void actionPerformed(ActionEvent e)
1132 pasteNew_actionPerformed(e);
1135 addMenuActionAndAccelerator(keyStroke, pasteNew, al);
1137 JMenuItem pasteThis = new JMenuItem(
1138 MessageManager.getString("label.to_this_alignment"));
1139 keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_V, Toolkit
1140 .getDefaultToolkit().getMenuShortcutKeyMask(), false);
1141 al = new ActionListener()
1144 public void actionPerformed(ActionEvent e)
1146 pasteThis_actionPerformed(e);
1149 addMenuActionAndAccelerator(keyStroke, pasteThis, al);
1151 JMenuItem createPNG = new JMenuItem("PNG");
1152 createPNG.addActionListener(new ActionListener()
1155 public void actionPerformed(ActionEvent e)
1160 createPNG.setActionCommand(MessageManager
1161 .getString("label.save_png_image"));
1163 JMenuItem font = new JMenuItem(MessageManager.getString("action.font"));
1164 font.addActionListener(new ActionListener()
1167 public void actionPerformed(ActionEvent e)
1169 font_actionPerformed(e);
1172 seqLimits.setText(MessageManager
1173 .getString("label.show_sequence_limits"));
1174 seqLimits.setState(jalview.bin.Cache.getDefault("SHOW_JVSUFFIX", true));
1175 seqLimits.addActionListener(new ActionListener()
1178 public void actionPerformed(ActionEvent e)
1180 seqLimit_actionPerformed(e);
1183 JMenuItem epsFile = new JMenuItem("EPS");
1184 epsFile.addActionListener(new ActionListener()
1187 public void actionPerformed(ActionEvent e)
1193 JMenuItem createSVG = new JMenuItem("SVG");
1194 createSVG.addActionListener(new ActionListener()
1197 public void actionPerformed(ActionEvent e)
1203 JMenuItem loadTreeMenuItem = new JMenuItem(
1204 MessageManager.getString("label.load_associated_tree"));
1205 loadTreeMenuItem.setActionCommand(MessageManager
1206 .getString("label.load_tree_for_sequence_set"));
1207 loadTreeMenuItem.addActionListener(new ActionListener()
1210 public void actionPerformed(ActionEvent e)
1212 loadTreeMenuItem_actionPerformed(e);
1216 scaleAbove.setVisible(false);
1217 scaleAbove.setText(MessageManager.getString("action.scale_above"));
1218 scaleAbove.addActionListener(new ActionListener()
1221 public void actionPerformed(ActionEvent e)
1223 scaleAbove_actionPerformed(e);
1226 scaleLeft.setVisible(false);
1227 scaleLeft.setSelected(true);
1228 scaleLeft.setText(MessageManager.getString("action.scale_left"));
1229 scaleLeft.addActionListener(new ActionListener()
1232 public void actionPerformed(ActionEvent e)
1234 scaleLeft_actionPerformed(e);
1237 scaleRight.setVisible(false);
1238 scaleRight.setSelected(true);
1239 scaleRight.setText(MessageManager.getString("action.scale_right"));
1240 scaleRight.addActionListener(new ActionListener()
1243 public void actionPerformed(ActionEvent e)
1245 scaleRight_actionPerformed(e);
1248 centreColumnLabelsMenuItem.setVisible(true);
1249 centreColumnLabelsMenuItem.setState(false);
1250 centreColumnLabelsMenuItem.setText(MessageManager
1251 .getString("label.centre_column_labels"));
1252 centreColumnLabelsMenuItem.addActionListener(new ActionListener()
1255 public void actionPerformed(ActionEvent e)
1257 centreColumnLabels_actionPerformed(e);
1260 followHighlightMenuItem.setVisible(true);
1261 followHighlightMenuItem.setState(true);
1262 followHighlightMenuItem.setText(MessageManager
1263 .getString("label.automatic_scrolling"));
1264 followHighlightMenuItem.addActionListener(new ActionListener()
1268 public void actionPerformed(ActionEvent e)
1270 followHighlight_actionPerformed();
1276 .setText(MessageManager.getString("action.by_tree_order"));
1277 sort.setText(MessageManager.getString("action.sort"));
1278 sort.addMenuListener(new MenuListener()
1281 public void menuSelected(MenuEvent e)
1287 public void menuDeselected(MenuEvent e)
1292 public void menuCanceled(MenuEvent e)
1296 sortByAnnotScore.setText(MessageManager
1297 .getString("label.sort_by_score"));
1298 sort.add(sortByAnnotScore);
1299 sort.addMenuListener(new javax.swing.event.MenuListener()
1303 public void menuCanceled(MenuEvent e)
1308 public void menuDeselected(MenuEvent e)
1313 public void menuSelected(MenuEvent e)
1315 buildSortByAnnotationScoresMenu();
1318 sortByAnnotScore.setVisible(false);
1321 .setText(MessageManager.getString("action.calculate_tree"));
1323 padGapsMenuitem.setText(MessageManager.getString("label.pad_gaps"));
1324 padGapsMenuitem.setState(jalview.bin.Cache
1325 .getDefault("PAD_GAPS", false));
1326 padGapsMenuitem.addActionListener(new ActionListener()
1329 public void actionPerformed(ActionEvent e)
1331 padGapsMenuitem_actionPerformed(e);
1334 JMenuItem vamsasStore = new JMenuItem(
1335 MessageManager.getString("label.vamsas_store"));
1336 vamsasStore.setVisible(false);
1337 vamsasStore.addActionListener(new ActionListener()
1340 public void actionPerformed(ActionEvent e)
1342 vamsasStore_actionPerformed(e);
1345 showTranslation.setText(MessageManager
1346 .getString("label.translate_cDNA"));
1347 showTranslation.addActionListener(new ActionListener()
1350 public void actionPerformed(ActionEvent e)
1352 showTranslation_actionPerformed(e);
1355 showReverse.setText(MessageManager.getString("label.reverse"));
1356 showReverse.addActionListener(new ActionListener()
1359 public void actionPerformed(ActionEvent e)
1361 showReverse_actionPerformed(false);
1364 showReverseComplement.setText(MessageManager
1365 .getString("label.reverse_complement"));
1366 showReverseComplement.addActionListener(new ActionListener()
1369 public void actionPerformed(ActionEvent e)
1371 showReverse_actionPerformed(true);
1375 JMenuItem extractScores = new JMenuItem(
1376 MessageManager.getString("label.extract_scores"));
1377 extractScores.addActionListener(new ActionListener()
1380 public void actionPerformed(ActionEvent e)
1382 extractScores_actionPerformed(e);
1385 extractScores.setVisible(true);
1386 // JBPNote: TODO: make gui for regex based score extraction
1388 // for show products actions see AlignFrame.canShowProducts
1389 showProducts.setText(MessageManager.getString("label.get_cross_refs"));
1391 runGroovy.setText(MessageManager.getString("label.run_groovy"));
1392 runGroovy.setToolTipText(MessageManager
1393 .getString("label.run_groovy_tip"));
1394 runGroovy.addActionListener(new ActionListener()
1397 public void actionPerformed(ActionEvent e)
1399 runGroovy_actionPerformed();
1403 JMenuItem openFeatureSettings = new JMenuItem(
1404 MessageManager.getString("action.feature_settings"));
1405 openFeatureSettings.addActionListener(new ActionListener()
1408 public void actionPerformed(ActionEvent e)
1410 featureSettings_actionPerformed(e);
1413 JMenuItem fetchSequence = new JMenuItem(
1414 MessageManager.getString("label.fetch_sequences"));
1415 fetchSequence.addActionListener(new ActionListener()
1418 public void actionPerformed(ActionEvent e)
1420 fetchSequence_actionPerformed(e);
1424 JMenuItem associatedData = new JMenuItem(
1425 MessageManager.getString("label.load_features_annotations"));
1426 associatedData.addActionListener(new ActionListener()
1429 public void actionPerformed(ActionEvent e)
1431 associatedData_actionPerformed(e);
1434 autoCalculate.setText(MessageManager
1435 .getString("label.autocalculate_consensus"));
1436 autoCalculate.setState(jalview.bin.Cache.getDefault(
1437 "AUTO_CALC_CONSENSUS", true));
1438 autoCalculate.addActionListener(new ActionListener()
1441 public void actionPerformed(ActionEvent e)
1443 autoCalculate_actionPerformed(e);
1446 sortByTree.setText(MessageManager
1447 .getString("label.sort_alignment_new_tree"));
1449 .setToolTipText("<html>"
1451 .getString("label.enable_automatically_sort_alignment_when_open_new_tree"));
1453 .setState(jalview.bin.Cache.getDefault("SORT_BY_TREE", false));
1454 sortByTree.addActionListener(new ActionListener()
1457 public void actionPerformed(ActionEvent e)
1459 sortByTreeOption_actionPerformed(e);
1463 listenToViewSelections.setText(MessageManager
1464 .getString("label.listen_for_selections"));
1465 listenToViewSelections
1466 .setToolTipText("<html>"
1468 .getString("label.selections_mirror_selections_made_same_sequences_other_views"));
1469 listenToViewSelections.setState(false);
1470 listenToViewSelections.addActionListener(new ActionListener()
1473 public void actionPerformed(ActionEvent e)
1475 listenToViewSelections_actionPerformed(e);
1479 JMenu addSequenceMenu = new JMenu(
1480 MessageManager.getString("label.add_sequences"));
1481 JMenuItem addFromFile = new JMenuItem(
1482 MessageManager.getString("label.from_file"));
1483 addFromFile.addActionListener(new ActionListener()
1486 public void actionPerformed(ActionEvent e)
1488 addFromFile_actionPerformed(e);
1491 JMenuItem addFromText = new JMenuItem(
1492 MessageManager.getString("label.from_textbox"));
1493 addFromText.addActionListener(new ActionListener()
1496 public void actionPerformed(ActionEvent e)
1498 addFromText_actionPerformed(e);
1501 JMenuItem addFromURL = new JMenuItem(
1502 MessageManager.getString("label.from_url"));
1503 addFromURL.addActionListener(new ActionListener()
1506 public void actionPerformed(ActionEvent e)
1508 addFromURL_actionPerformed(e);
1511 JMenuItem exportFeatures = new JMenuItem(
1512 MessageManager.getString("label.export_features"));
1513 exportFeatures.addActionListener(new ActionListener()
1516 public void actionPerformed(ActionEvent e)
1518 exportFeatures_actionPerformed(e);
1521 JMenuItem exportAnnotations = new JMenuItem(
1522 MessageManager.getString("label.export_annotations"));
1523 exportAnnotations.addActionListener(new ActionListener()
1526 public void actionPerformed(ActionEvent e)
1528 exportAnnotations_actionPerformed(e);
1531 statusPanel.setLayout(new GridLayout());
1532 JMenuItem showAllSeqs = new JMenuItem(
1533 MessageManager.getString("label.all_sequences"));
1534 showAllSeqs.setToolTipText(MessageManager
1535 .getString("label.toggle_sequence_visibility"));
1536 showAllSeqs.addActionListener(new ActionListener()
1539 public void actionPerformed(ActionEvent e)
1541 showAllSeqs_actionPerformed(e);
1544 JMenuItem showAllColumns = new JMenuItem(
1545 MessageManager.getString("label.all_columns"));
1546 showAllColumns.setToolTipText(MessageManager
1547 .getString("label.toggle_columns_visibility"));
1548 showAllColumns.addActionListener(new ActionListener()
1551 public void actionPerformed(ActionEvent e)
1553 showAllColumns_actionPerformed(e);
1556 JMenu hideMenu = new JMenu(MessageManager.getString("action.hide"));
1557 JMenuItem hideSelSequences = new JMenuItem(
1558 MessageManager.getString("label.selected_sequences"));
1559 hideSelSequences.setToolTipText(MessageManager
1560 .getString("label.toggle_sequence_visibility"));
1561 hideSelSequences.addActionListener(new ActionListener()
1564 public void actionPerformed(ActionEvent e)
1566 hideSelSequences_actionPerformed(e);
1569 JMenuItem hideSelColumns = new JMenuItem(
1570 MessageManager.getString("label.selected_columns"));
1571 hideSelColumns.setToolTipText(MessageManager
1572 .getString("label.toggle_columns_visibility"));
1573 hideSelColumns.addActionListener(new ActionListener()
1576 public void actionPerformed(ActionEvent e)
1578 hideSelColumns_actionPerformed(e);
1581 JMenuItem hideAllSelection = new JMenuItem(
1582 MessageManager.getString("label.selected_region"));
1583 hideAllSelection.addActionListener(new ActionListener()
1586 public void actionPerformed(ActionEvent e)
1588 hideAllSelection_actionPerformed(e);
1591 // TODO: should be hidden if no selection exists.
1592 JMenuItem hideAllButSelection = new JMenuItem(
1593 MessageManager.getString("label.all_but_selected_region"));
1594 hideAllButSelection.addActionListener(new ActionListener()
1597 public void actionPerformed(ActionEvent e)
1599 hideAllButSelection_actionPerformed(e);
1602 JMenuItem showAllhidden = new JMenuItem(
1603 MessageManager.getString("label.all_sequences_columns"));
1604 showAllhidden.setToolTipText(MessageManager
1605 .getString("label.toggles_visibility_hidden_selected_regions"));
1606 showAllhidden.addActionListener(new ActionListener()
1609 public void actionPerformed(ActionEvent e)
1611 showAllhidden_actionPerformed(e);
1614 hiddenMarkers.setText(MessageManager
1615 .getString("action.show_hidden_markers"));
1616 hiddenMarkers.addActionListener(new ActionListener()
1619 public void actionPerformed(ActionEvent e)
1621 hiddenMarkers_actionPerformed(e);
1625 JMenuItem invertColSel = new JMenuItem(
1626 MessageManager.getString("action.invert_column_selection"));
1627 keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_I, Toolkit
1628 .getDefaultToolkit().getMenuShortcutKeyMask()
1629 | KeyEvent.ALT_MASK, false);
1630 al = new ActionListener()
1633 public void actionPerformed(ActionEvent e)
1635 invertColSel_actionPerformed(e);
1638 addMenuActionAndAccelerator(keyStroke, invertColSel, al);
1640 showComplementMenuItem.setVisible(false);
1641 showComplementMenuItem.addActionListener(new ActionListener()
1644 public void actionPerformed(ActionEvent e)
1646 showComplement_actionPerformed(showComplementMenuItem.getState());
1650 tabbedPane.addChangeListener(new javax.swing.event.ChangeListener()
1653 public void stateChanged(ChangeEvent evt)
1655 JTabbedPane pane = (JTabbedPane) evt.getSource();
1656 int sel = pane.getSelectedIndex();
1657 tabSelectionChanged(sel);
1660 tabbedPane.addMouseListener(new MouseAdapter()
1663 public void mousePressed(MouseEvent e)
1665 if (e.isPopupTrigger()) // Mac
1667 tabbedPane_mousePressed(e);
1672 public void mouseReleased(MouseEvent e)
1674 if (e.isPopupTrigger()) // Windows
1676 tabbedPane_mousePressed(e);
1680 tabbedPane.addFocusListener(new FocusAdapter()
1683 public void focusGained(FocusEvent e)
1685 tabbedPane_focusGained(e);
1689 JMenuItem save = new JMenuItem(MessageManager.getString("action.save"));
1690 keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_S, Toolkit
1691 .getDefaultToolkit().getMenuShortcutKeyMask(), false);
1692 al = new ActionListener()
1695 public void actionPerformed(ActionEvent e)
1697 save_actionPerformed(e);
1700 addMenuActionAndAccelerator(keyStroke, save, al);
1702 reload.setEnabled(false);
1703 reload.setText(MessageManager.getString("action.reload"));
1704 reload.addActionListener(new ActionListener()
1707 public void actionPerformed(ActionEvent e)
1709 reload_actionPerformed(e);
1713 JMenuItem newView = new JMenuItem(
1714 MessageManager.getString("action.new_view"));
1715 keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_T, Toolkit
1716 .getDefaultToolkit().getMenuShortcutKeyMask(), false);
1717 al = new ActionListener()
1720 public void actionPerformed(ActionEvent e)
1722 newView_actionPerformed(e);
1725 addMenuActionAndAccelerator(keyStroke, newView, al);
1727 tabbedPane.setToolTipText("<html><i>"
1728 + MessageManager.getString("label.rename_tab_eXpand_reGroup")
1731 formatMenu.setText(MessageManager.getString("action.format"));
1732 JMenu selectMenu = new JMenu(MessageManager.getString("action.select"));
1733 idRightAlign.setText(MessageManager
1734 .getString("label.right_align_sequence_id"));
1735 idRightAlign.addActionListener(new ActionListener()
1738 public void actionPerformed(ActionEvent e)
1740 idRightAlign_actionPerformed(e);
1744 gatherViews.setEnabled(false);
1745 gatherViews.setText(MessageManager.getString("action.gather_views"));
1746 keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_G, 0, false);
1747 al = new ActionListener()
1750 public void actionPerformed(ActionEvent e)
1752 gatherViews_actionPerformed(e);
1755 addMenuActionAndAccelerator(keyStroke, gatherViews, al);
1757 expandViews.setEnabled(false);
1758 expandViews.setText(MessageManager.getString("action.expand_views"));
1759 keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_X, 0, false);
1760 al = new ActionListener()
1763 public void actionPerformed(ActionEvent e)
1765 expandViews_actionPerformed(e);
1768 addMenuActionAndAccelerator(keyStroke, expandViews, al);
1770 JMenuItem pageSetup = new JMenuItem(
1771 MessageManager.getString("action.page_setup"));
1772 pageSetup.addActionListener(new ActionListener()
1775 public void actionPerformed(ActionEvent e)
1777 pageSetup_actionPerformed(e);
1780 JMenuItem alignmentProperties = new JMenuItem(
1781 MessageManager.getString("label.alignment_props"));
1782 alignmentProperties.addActionListener(new ActionListener()
1785 public void actionPerformed(ActionEvent actionEvent)
1787 alignmentProperties();
1790 JMenuItem selectHighlighted = new JMenuItem(
1791 MessageManager.getString("action.select_highlighted_columns"));
1792 selectHighlighted.setToolTipText(MessageManager
1793 .getString("tooltip.select_highlighted_columns"));
1794 al = new ActionListener()
1797 public void actionPerformed(ActionEvent actionEvent)
1799 selectHighlightedColumns_actionPerformed(actionEvent);
1802 selectHighlighted.addActionListener(al);
1803 JMenu tooltipSettingsMenu = new JMenu(
1804 MessageManager.getString("label.sequence_id_tooltip"));
1805 JMenu autoAnnMenu = new JMenu(
1806 MessageManager.getString("label.autocalculated_annotation"));
1808 JMenu exportImageMenu = new JMenu(
1809 MessageManager.getString("label.export_image"));
1810 JMenu fileMenu = new JMenu(MessageManager.getString("action.file"));
1811 alignFrameMenuBar.add(fileMenu);
1812 alignFrameMenuBar.add(editMenu);
1813 alignFrameMenuBar.add(selectMenu);
1814 alignFrameMenuBar.add(viewMenu);
1815 alignFrameMenuBar.add(annotationsMenu);
1816 alignFrameMenuBar.add(formatMenu);
1817 alignFrameMenuBar.add(colourMenu);
1818 alignFrameMenuBar.add(calculateMenu);
1819 alignFrameMenuBar.add(webService);
1821 fileMenu.add(fetchSequence);
1822 fileMenu.add(addSequenceMenu);
1823 fileMenu.add(reload);
1824 fileMenu.addSeparator();
1825 fileMenu.add(vamsasStore);
1827 fileMenu.add(saveAs);
1828 fileMenu.add(outputTextboxMenu);
1829 fileMenu.add(pageSetup);
1830 fileMenu.add(printMenuItem);
1831 fileMenu.addSeparator();
1832 fileMenu.add(exportImageMenu);
1833 fileMenu.add(exportFeatures);
1834 fileMenu.add(exportAnnotations);
1835 fileMenu.add(loadTreeMenuItem);
1836 fileMenu.add(associatedData);
1837 fileMenu.addSeparator();
1838 fileMenu.add(closeMenuItem);
1840 pasteMenu.add(pasteNew);
1841 pasteMenu.add(pasteThis);
1842 editMenu.add(undoMenuItem);
1843 editMenu.add(redoMenuItem);
1846 editMenu.add(pasteMenu);
1847 editMenu.add(delete);
1848 editMenu.addSeparator();
1849 editMenu.add(remove2LeftMenuItem);
1850 editMenu.add(remove2RightMenuItem);
1851 editMenu.add(removeGappedColumnMenuItem);
1852 editMenu.add(removeAllGapsMenuItem);
1853 editMenu.add(removeRedundancyMenuItem);
1854 editMenu.addSeparator();
1855 // dont add these yet in the CVS build - they cannot be undone!
1856 // Excluded from Jalview 2.5 release - undo needs to be implemented.
1857 // editMenu.add(justifyLeftMenuItem);
1858 // editMenu.add(justifyRightMenuItem);
1859 // editMenu.addSeparator();
1860 editMenu.add(padGapsMenuitem);
1862 showMenu.add(showAllColumns);
1863 showMenu.add(showAllSeqs);
1864 showMenu.add(showAllhidden);
1865 hideMenu.add(hideSelColumns);
1866 hideMenu.add(hideSelSequences);
1867 hideMenu.add(hideAllSelection);
1868 hideMenu.add(hideAllButSelection);
1869 viewMenu.add(newView);
1870 viewMenu.add(expandViews);
1871 viewMenu.add(gatherViews);
1872 viewMenu.addSeparator();
1873 viewMenu.add(showMenu);
1874 viewMenu.add(hideMenu);
1875 viewMenu.add(showComplementMenuItem);
1876 viewMenu.addSeparator();
1877 viewMenu.add(followHighlightMenuItem);
1878 viewMenu.addSeparator();
1879 viewMenu.add(showSeqFeatures);
1880 // viewMenu.add(showSeqFeaturesHeight);
1881 viewMenu.add(openFeatureSettings);
1882 tooltipSettingsMenu.add(showDbRefsMenuitem);
1883 tooltipSettingsMenu.add(showNpFeatsMenuitem);
1884 viewMenu.add(tooltipSettingsMenu);
1885 viewMenu.addSeparator();
1886 viewMenu.add(alignmentProperties);
1887 viewMenu.addSeparator();
1888 viewMenu.add(overviewMenuItem);
1890 annotationsMenu.add(annotationPanelMenuItem);
1891 annotationsMenu.addSeparator();
1892 annotationsMenu.add(showAllAlAnnotations);
1893 annotationsMenu.add(hideAllAlAnnotations);
1894 annotationsMenu.addSeparator();
1895 annotationsMenu.add(showAllSeqAnnotations);
1896 annotationsMenu.add(hideAllSeqAnnotations);
1897 annotationsMenu.add(sortAnnBySequence);
1898 annotationsMenu.add(sortAnnByLabel);
1899 annotationsMenu.addSeparator();
1900 autoAnnMenu.add(showAutoFirst);
1901 autoAnnMenu.add(showAutoLast);
1902 autoAnnMenu.addSeparator();
1903 autoAnnMenu.add(applyAutoAnnotationSettings);
1904 autoAnnMenu.add(showConsensusHistogram);
1905 autoAnnMenu.add(showSequenceLogo);
1906 autoAnnMenu.add(normaliseSequenceLogo);
1907 autoAnnMenu.addSeparator();
1908 autoAnnMenu.add(showGroupConservation);
1909 autoAnnMenu.add(showGroupConsensus);
1910 annotationsMenu.add(autoAnnMenu);
1913 sort.add(sortIDMenuItem);
1914 sort.add(sortLengthMenuItem);
1915 sort.add(sortGroupMenuItem);
1916 sort.add(sortPairwiseMenuItem);
1917 sort.add(sortByTreeMenu);
1918 calculateMenu.add(sort);
1919 calculateMenu.add(calculateTree);
1920 calculateMenu.addSeparator();
1921 calculateMenu.add(pairwiseAlignmentMenuItem);
1922 calculateMenu.add(PCAMenuItem);
1923 calculateMenu.addSeparator();
1924 calculateMenu.add(showTranslation);
1925 calculateMenu.add(showReverse);
1926 calculateMenu.add(showReverseComplement);
1927 calculateMenu.add(showProducts);
1928 calculateMenu.add(autoCalculate);
1929 calculateMenu.add(sortByTree);
1930 calculateMenu.addSeparator();
1931 calculateMenu.add(expandAlignment);
1932 calculateMenu.add(extractScores);
1933 calculateMenu.addSeparator();
1934 calculateMenu.add(runGroovy);
1936 webServiceNoServices = new JMenuItem(
1937 MessageManager.getString("label.no_services"));
1938 webService.add(webServiceNoServices);
1939 exportImageMenu.add(htmlMenuItem);
1940 exportImageMenu.add(epsFile);
1941 exportImageMenu.add(createPNG);
1942 exportImageMenu.add(createBioJS);
1943 exportImageMenu.add(createSVG);
1944 addSequenceMenu.add(addFromFile);
1945 addSequenceMenu.add(addFromText);
1946 addSequenceMenu.add(addFromURL);
1947 this.getContentPane().add(statusPanel, java.awt.BorderLayout.SOUTH);
1948 statusPanel.add(statusBar, null);
1949 this.getContentPane().add(tabbedPane, java.awt.BorderLayout.CENTER);
1951 formatMenu.add(font);
1952 formatMenu.addSeparator();
1953 formatMenu.add(wrapMenuItem);
1954 formatMenu.add(scaleAbove);
1955 formatMenu.add(scaleLeft);
1956 formatMenu.add(scaleRight);
1957 formatMenu.add(seqLimits);
1958 formatMenu.add(idRightAlign);
1959 formatMenu.add(hiddenMarkers);
1960 formatMenu.add(viewBoxesMenuItem);
1961 formatMenu.add(viewTextMenuItem);
1962 formatMenu.add(colourTextMenuItem);
1963 formatMenu.add(renderGapsMenuItem);
1964 formatMenu.add(centreColumnLabelsMenuItem);
1965 formatMenu.add(showNonconservedMenuItem);
1966 selectMenu.add(findMenuItem);
1967 selectMenu.addSeparator();
1968 selectMenu.add(selectAllSequenceMenuItem);
1969 selectMenu.add(deselectAllSequenceMenuItem);
1970 selectMenu.add(invertSequenceMenuItem);
1971 selectMenu.add(invertColSel);
1972 selectMenu.add(createGroup);
1973 selectMenu.add(unGroup);
1974 selectMenu.add(grpsFromSelection);
1975 selectMenu.add(deleteGroups);
1976 selectMenu.add(annotationColumn);
1977 selectMenu.add(selectHighlighted);
1978 // TODO - determine if the listenToViewSelections button is needed : see bug
1980 // selectMenu.addSeparator();
1981 // selectMenu.add(listenToViewSelections);
1985 * Rebuilds the Colour menu, including any user-defined colours which have
1986 * been loaded either on startup or during the session
1988 public void buildColourMenu()
1990 colourMenu.removeAll();
1991 colours = new ButtonGroup();
1993 colourMenu.add(applyToAllGroups);
1994 colourMenu.add(textColour);
1995 colourMenu.addSeparator();
1996 colourMenu.add(noColourmenuItem);
1997 colourMenu.add(clustalColour);
1998 colourMenu.add(BLOSUM62Colour);
1999 colourMenu.add(PIDColour);
2000 colourMenu.add(zappoColour);
2001 colourMenu.add(taylorColour);
2002 colourMenu.add(hydrophobicityColour);
2003 colourMenu.add(helixColour);
2004 colourMenu.add(strandColour);
2005 colourMenu.add(turnColour);
2006 colourMenu.add(buriedColour);
2007 colourMenu.add(nucleotideColour);
2008 colourMenu.add(purinePyrimidineColour);
2009 // colourMenu.add(RNAInteractionColour);
2010 // colourMenu.add(covariationColour);
2011 colourMenu.add(tcoffeeColour);
2014 * add any user-defined colours
2016 Map<String, UserColourScheme> userColourSchemes = UserDefinedColours
2017 .getUserColourSchemes();
2018 if (userColourSchemes != null)
2020 for (String userColour : userColourSchemes.keySet())
2022 final JRadioButtonMenuItem radioItem = new JRadioButtonMenuItem(
2024 radioItem.setName(userColour);
2025 radioItem.addMouseListener(new MouseAdapter()
2028 public void mousePressed(MouseEvent evt)
2030 if (evt.isPopupTrigger()) // Mac
2037 public void mouseReleased(MouseEvent evt)
2039 if (evt.isPopupTrigger()) // Windows
2047 radioItem.removeActionListener(radioItem.getActionListeners()[0]);
2049 int option = JvOptionPane.showInternalConfirmDialog(
2050 Desktop.desktop, MessageManager
2051 .getString("label.remove_from_default_list"),
2053 .getString("label.remove_user_defined_colour"),
2054 JvOptionPane.YES_NO_OPTION);
2055 if (option == JvOptionPane.YES_OPTION)
2057 UserDefinedColours.removeColourFromDefaults(radioItem
2059 colourMenu.remove(radioItem);
2063 radioItem.addActionListener(new ActionListener()
2066 public void actionPerformed(ActionEvent evt)
2068 userDefinedColour_actionPerformed(evt);
2074 radioItem.addActionListener(new ActionListener()
2077 public void actionPerformed(ActionEvent evt)
2079 userDefinedColour_actionPerformed(evt);
2082 colourMenu.add(radioItem);
2083 colours.add(radioItem);
2087 colourMenu.add(userDefinedColour);
2088 colourMenu.addSeparator();
2089 colourMenu.add(conservationMenuItem);
2090 colourMenu.add(modifyConservation);
2091 colourMenu.add(abovePIDThreshold);
2092 colourMenu.add(modifyPID);
2093 colourMenu.add(annotationColour);
2094 colourMenu.add(rnahelicesColour);
2097 * add colours to a ButtonGroup to make their
2098 * selection mutually exclusive
2100 colours.add(noColourmenuItem);
2101 colours.add(clustalColour);
2102 colours.add(zappoColour);
2103 colours.add(taylorColour);
2104 colours.add(hydrophobicityColour);
2105 colours.add(helixColour);
2106 colours.add(strandColour);
2107 colours.add(turnColour);
2108 colours.add(buriedColour);
2109 colours.add(userDefinedColour);
2110 colours.add(PIDColour);
2111 colours.add(BLOSUM62Colour);
2112 colours.add(nucleotideColour);
2113 colours.add(purinePyrimidineColour);
2114 // colours.add(covariationColour);
2115 colours.add(tcoffeeColour);
2116 // colours.add(RNAInteractionColour);
2117 setColourSelected(Cache.getDefault(Preferences.DEFAULT_COLOUR,
2118 ResidueColourScheme.NONE));
2123 * Constructs the entries on the Colour menu (but does not add them to the
2124 * menu). The 'name' property of each item is set to the canonical name of the
2125 * corresponding colour scheme (may not match the display name), to allow
2126 * selection of items by colour scheme name.
2128 protected void initColourMenu()
2130 applyToAllGroups = new JCheckBoxMenuItem(
2131 MessageManager.getString("label.apply_colour_to_all_groups"));
2132 applyToAllGroups.addActionListener(new ActionListener()
2135 public void actionPerformed(ActionEvent e)
2137 applyToAllGroups_actionPerformed();
2141 textColour = new JRadioButtonMenuItem(
2142 MessageManager.getString("action.set_text_colour"));
2143 textColour.addActionListener(new ActionListener()
2146 public void actionPerformed(ActionEvent e)
2148 textColour_actionPerformed();
2151 clustalColour = new JRadioButtonMenuItem(
2152 MessageManager.getString("label.clustalx"));
2153 clustalColour.setName(JalviewColourScheme.Clustal.toString());
2154 clustalColour.addActionListener(new ActionListener()
2157 public void actionPerformed(ActionEvent e)
2159 clustalColour_actionPerformed();
2162 zappoColour = new JRadioButtonMenuItem(
2163 MessageManager.getString("label.zappo"));
2164 zappoColour.setName(JalviewColourScheme.Zappo.toString());
2165 zappoColour.addActionListener(new ActionListener()
2168 public void actionPerformed(ActionEvent e)
2170 zappoColour_actionPerformed();
2173 taylorColour = new JRadioButtonMenuItem(
2174 MessageManager.getString("label.taylor"));
2175 taylorColour.setName(JalviewColourScheme.Taylor.toString());
2176 taylorColour.addActionListener(new ActionListener()
2179 public void actionPerformed(ActionEvent e)
2181 taylorColour_actionPerformed();
2184 hydrophobicityColour = new JRadioButtonMenuItem(
2186 .getString("label.hydrophobicity"));
2187 hydrophobicityColour
2188 .setName(JalviewColourScheme.Hydrophobic.toString());
2189 hydrophobicityColour.addActionListener(new ActionListener()
2192 public void actionPerformed(ActionEvent e)
2194 hydrophobicityColour_actionPerformed();
2197 helixColour = new JRadioButtonMenuItem(
2198 MessageManager.getString("label.helix_propensity"));
2199 helixColour.setName(JalviewColourScheme.Helix.toString());
2200 helixColour.addActionListener(new ActionListener()
2203 public void actionPerformed(ActionEvent e)
2205 helixColour_actionPerformed();
2208 strandColour = new JRadioButtonMenuItem(
2210 .getString("label.strand_propensity"));
2211 strandColour.setName(JalviewColourScheme.Strand.toString());
2212 strandColour.addActionListener(new ActionListener()
2215 public void actionPerformed(ActionEvent e)
2217 strandColour_actionPerformed();
2220 turnColour = new JRadioButtonMenuItem(
2221 MessageManager.getString("label.turn_propensity"));
2222 turnColour.setName(JalviewColourScheme.Turn.toString());
2223 turnColour.addActionListener(new ActionListener()
2226 public void actionPerformed(ActionEvent e)
2228 turnColour_actionPerformed();
2231 buriedColour = new JRadioButtonMenuItem(
2232 MessageManager.getString("label.buried_index"));
2233 buriedColour.setName(JalviewColourScheme.Buried.toString());
2234 buriedColour.addActionListener(new ActionListener()
2237 public void actionPerformed(ActionEvent e)
2239 buriedColour_actionPerformed();
2242 userDefinedColour = new JRadioButtonMenuItem(
2244 .getString("action.user_defined"));
2245 userDefinedColour.setName(JalviewColourScheme.UserDefined.toString());
2246 userDefinedColour.addActionListener(new ActionListener()
2249 public void actionPerformed(ActionEvent e)
2251 userDefinedColour_actionPerformed(e);
2254 PIDColour = new JRadioButtonMenuItem(
2255 MessageManager.getString("label.percentage_identity"));
2256 PIDColour.setName(JalviewColourScheme.PID.toString());
2257 PIDColour.addActionListener(new ActionListener()
2260 public void actionPerformed(ActionEvent e)
2262 PIDColour_actionPerformed();
2265 BLOSUM62Colour = new JRadioButtonMenuItem(
2266 MessageManager.getString("label.blosum62_score"));
2267 BLOSUM62Colour.setName(JalviewColourScheme.Blosum62.toString());
2268 BLOSUM62Colour.addActionListener(new ActionListener()
2271 public void actionPerformed(ActionEvent e)
2273 BLOSUM62Colour_actionPerformed();
2276 nucleotideColour = new JRadioButtonMenuItem(
2277 MessageManager.getString("label.nucleotide"));
2278 nucleotideColour.setName(JalviewColourScheme.Nucleotide.toString());
2279 nucleotideColour.addActionListener(new ActionListener()
2282 public void actionPerformed(ActionEvent e)
2284 nucleotideColour_actionPerformed();
2287 purinePyrimidineColour = new JRadioButtonMenuItem(
2288 MessageManager.getString("label.purine_pyrimidine"));
2289 purinePyrimidineColour.setName(JalviewColourScheme.PurinePyrimidine.toString());
2290 purinePyrimidineColour.addActionListener(new ActionListener()
2293 public void actionPerformed(ActionEvent e)
2295 purinePyrimidineColour_actionPerformed();
2299 tcoffeeColour = new JRadioButtonMenuItem(
2300 MessageManager.getString("label.tcoffee_scores"));
2301 tcoffeeColour.setName(JalviewColourScheme.TCoffee.toString());
2302 tcoffeeColour.setEnabled(false);
2303 tcoffeeColour.addActionListener(new ActionListener()
2307 public void actionPerformed(ActionEvent e)
2309 tcoffeeColorScheme_actionPerformed();
2313 // RNAInteractionColour = new JRadioButtonMenuItem("RNA Interaction type");
2314 // RNAInteractionColour.setName("RNA Interaction");
2315 // RNAInteractionColour.addActionListener(new ActionListener()
2318 // public void actionPerformed(ActionEvent e)
2320 // RNAInteractionColour_actionPerformed();
2324 * covariationColour = new JRadioButtonMenuItem("Covariation");
2325 * covariationColour.addActionListener(new ActionListener() { public void
2326 * actionPerformed(ActionEvent e) { covariationColour_actionPerformed(); }
2330 conservationMenuItem = new JCheckBoxMenuItem(
2331 MessageManager.getString("action.by_conservation"));
2332 conservationMenuItem.addActionListener(new ActionListener()
2335 public void actionPerformed(ActionEvent e)
2337 conservationMenuItem_actionPerformed();
2340 noColourmenuItem = new JRadioButtonMenuItem(
2341 MessageManager.getString("label.none"));
2342 noColourmenuItem.setName("None");
2343 noColourmenuItem.addActionListener(new ActionListener()
2346 public void actionPerformed(ActionEvent e)
2348 noColourmenuItem_actionPerformed();
2352 abovePIDThreshold = new JCheckBoxMenuItem(
2353 MessageManager.getString("label.above_identity_threshold"));
2354 abovePIDThreshold.addActionListener(new ActionListener()
2357 public void actionPerformed(ActionEvent e)
2359 abovePIDThreshold_actionPerformed();
2362 modifyPID = new JMenuItem(
2363 MessageManager.getString("label.modify_identity_threshold"));
2364 modifyPID.addActionListener(new ActionListener()
2367 public void actionPerformed(ActionEvent e)
2369 modifyPID_actionPerformed();
2372 modifyConservation = new JMenuItem(
2374 .getString("label.modify_conservation_threshold"));
2375 modifyConservation.addActionListener(new ActionListener()
2378 public void actionPerformed(ActionEvent e)
2380 modifyConservation_actionPerformed();
2384 annotationColour = new JMenuItem(
2385 MessageManager.getString("action.by_annotation"));
2386 annotationColour.addActionListener(new ActionListener()
2389 public void actionPerformed(ActionEvent e)
2391 annotationColour_actionPerformed();
2395 rnahelicesColour = new JMenuItem(
2396 MessageManager.getString("action.by_rna_helixes"));
2397 rnahelicesColour.addActionListener(new ActionListener()
2400 public void actionPerformed(ActionEvent e)
2402 rnahelicesColour_actionPerformed();
2407 protected void selectHighlightedColumns_actionPerformed(
2408 ActionEvent actionEvent)
2410 // TODO Auto-generated method stub
2415 * Generate the reverse sequence (or reverse complement if the flag is true)
2416 * and add it to the alignment
2420 protected void showReverse_actionPerformed(boolean complement)
2425 * Try to run script in a Groovy console, having first ensured that this
2426 * alignframe is set as currentAlignFrame in Desktop
2428 protected void runGroovy_actionPerformed()
2434 * Adds the given action listener and key accelerator to the given menu item.
2435 * Also saves in a lookup table to support lookup of action by key stroke.
2439 * @param actionListener
2441 protected void addMenuActionAndAccelerator(KeyStroke keyStroke,
2442 JMenuItem menuItem, ActionListener actionListener)
2444 menuItem.setAccelerator(keyStroke);
2445 accelerators.put(keyStroke, menuItem);
2446 menuItem.addActionListener(actionListener);
2450 * Action on clicking sort annotations by type.
2454 protected void sortAnnotations_actionPerformed()
2459 * Action on clicking Show all annotations.
2461 * @param forSequences
2462 * update sequence-related annotations
2463 * @param forAlignment
2464 * update non-sequence-related annotations
2466 protected void showAllAnnotations_actionPerformed(boolean forSequences,
2467 boolean forAlignment)
2469 setAnnotationsVisibility(true, forSequences, forAlignment);
2473 * Action on clicking Hide all annotations.
2475 * @param forSequences
2476 * update sequence-related annotations
2477 * @param forAlignment
2478 * update non-sequence-related annotations
2480 protected void hideAllAnnotations_actionPerformed(boolean forSequences,
2481 boolean forAlignment)
2483 setAnnotationsVisibility(false, forSequences, forAlignment);
2487 * Set the visibility of annotations to true or false. Can act on
2488 * sequence-related annotations, or alignment-related, or both.
2491 * @param forSequences
2492 * update sequence-related annotations
2493 * @param forAlignment
2494 * update non-sequence-related annotations
2496 protected void setAnnotationsVisibility(boolean visible,
2497 boolean forSequences, boolean forAlignment)
2502 protected void normaliseSequenceLogo_actionPerformed(ActionEvent e)
2504 // TODO Auto-generated method stub
2508 protected void listenToViewSelections_actionPerformed(ActionEvent e)
2510 // TODO Auto-generated method stub
2514 protected void showAllhidden_actionPerformed(ActionEvent e)
2516 // TODO Auto-generated method stub
2520 protected void hideAllButSelection_actionPerformed(ActionEvent e)
2522 // TODO Auto-generated method stub
2526 protected void hideAllSelection_actionPerformed(ActionEvent e)
2528 // TODO Auto-generated method stub
2532 protected void applyAutoAnnotationSettings_actionPerformed(ActionEvent e)
2534 // TODO Auto-generated method stub
2538 protected void showConsensusHistogram_actionPerformed(ActionEvent e)
2540 // TODO Auto-generated method stub
2544 protected void showSequenceLogo_actionPerformed(ActionEvent e)
2546 // TODO Auto-generated method stub
2550 protected void makeGrpsFromSelection_actionPerformed(ActionEvent e)
2552 // TODO Auto-generated method stub
2556 protected void showGroupConsensus_actionPerformed(ActionEvent e)
2558 // TODO Auto-generated method stub
2562 protected void showGroupConservation_actionPerformed(ActionEvent e)
2564 // TODO Auto-generated method stub
2568 protected void showUnconservedMenuItem_actionPerformed(ActionEvent e)
2570 // TODO Auto-generated method stub
2574 protected void justifyRightMenuItem_actionPerformed(ActionEvent e)
2576 // TODO Auto-generated method stub
2580 protected void justifyLeftMenuItem_actionPerformed(ActionEvent e)
2582 // TODO Auto-generated method stub
2586 protected void followHighlight_actionPerformed()
2588 // TODO Auto-generated method stub
2592 protected void showNpFeats_actionPerformed(ActionEvent e)
2594 // TODO Auto-generated method stub
2598 protected void showDbRefs_actionPerformed(ActionEvent e)
2600 // TODO Auto-generated method stub
2604 protected void centreColumnLabels_actionPerformed(ActionEvent e)
2608 protected void buildSortByAnnotationScoresMenu()
2612 protected void extractScores_actionPerformed(ActionEvent e)
2616 protected void outputText_actionPerformed(ActionEvent e)
2620 public void addFromFile_actionPerformed(ActionEvent e)
2625 public void addFromText_actionPerformed(ActionEvent e)
2630 public void addFromURL_actionPerformed(ActionEvent e)
2635 public void exportFeatures_actionPerformed(ActionEvent e)
2640 public void exportAnnotations_actionPerformed(ActionEvent e)
2645 protected void htmlMenuItem_actionPerformed(ActionEvent e)
2649 protected void bioJSMenuItem_actionPerformed(ActionEvent e)
2654 protected void closeMenuItem_actionPerformed(boolean b)
2658 protected void redoMenuItem_actionPerformed(ActionEvent e)
2662 protected void undoMenuItem_actionPerformed(ActionEvent e)
2666 protected void selectAllSequenceMenuItem_actionPerformed(ActionEvent e)
2670 protected void deselectAllSequenceMenuItem_actionPerformed(ActionEvent e)
2674 protected void invertSequenceMenuItem_actionPerformed(ActionEvent e)
2678 protected void remove2LeftMenuItem_actionPerformed(ActionEvent e)
2682 protected void remove2RightMenuItem_actionPerformed(ActionEvent e)
2686 protected void removeGappedColumnMenuItem_actionPerformed(ActionEvent e)
2690 protected void removeAllGapsMenuItem_actionPerformed(ActionEvent e)
2694 protected void wrapMenuItem_actionPerformed(ActionEvent e)
2698 protected void viewBoxesMenuItem_actionPerformed(ActionEvent e)
2702 protected void viewTextMenuItem_actionPerformed(ActionEvent e)
2706 protected void colourTextMenuItem_actionPerformed(ActionEvent e)
2710 protected void annotationPanelMenuItem_actionPerformed(ActionEvent e)
2714 protected void overviewMenuItem_actionPerformed(ActionEvent e)
2718 protected void sortPairwiseMenuItem_actionPerformed(ActionEvent e)
2722 protected void sortIDMenuItem_actionPerformed(ActionEvent e)
2726 protected void sortLengthMenuItem_actionPerformed(ActionEvent e)
2730 protected void sortGroupMenuItem_actionPerformed(ActionEvent e)
2734 protected void removeRedundancyMenuItem_actionPerformed(ActionEvent e)
2738 protected void pairwiseAlignmentMenuItem_actionPerformed(ActionEvent e)
2742 protected void PCAMenuItem_actionPerformed(ActionEvent e)
2746 protected void averageDistanceTreeMenuItem_actionPerformed(ActionEvent e)
2750 protected void neighbourTreeMenuItem_actionPerformed(ActionEvent e)
2754 protected void njTreeBlosumMenuItem_actionPerformed(ActionEvent e)
2758 protected void avTreeBlosumMenuItem_actionPerformed(ActionEvent e)
2762 protected void clustalColour_actionPerformed()
2766 protected void zappoColour_actionPerformed()
2770 protected void taylorColour_actionPerformed()
2774 protected void hydrophobicityColour_actionPerformed()
2778 protected void helixColour_actionPerformed()
2782 protected void strandColour_actionPerformed()
2786 protected void turnColour_actionPerformed()
2790 protected void buriedColour_actionPerformed()
2794 protected void userDefinedColour_actionPerformed(ActionEvent e)
2798 protected void PIDColour_actionPerformed()
2802 protected void BLOSUM62Colour_actionPerformed()
2806 protected void purinePyrimidineColour_actionPerformed()
2810 protected void RNAInteractionColour_actionPerformed()
2815 * protected void covariationColour_actionPerformed() { }
2818 protected void noColourmenuItem_actionPerformed()
2822 protected void conservationMenuItem_actionPerformed()
2826 protected void printMenuItem_actionPerformed(ActionEvent e)
2830 protected void renderGapsMenuItem_actionPerformed(ActionEvent e)
2834 protected void findMenuItem_actionPerformed(ActionEvent e)
2838 protected void abovePIDThreshold_actionPerformed()
2842 public void showSeqFeatures_actionPerformed(ActionEvent actionEvent)
2846 protected void nucleotideColour_actionPerformed()
2850 protected void deleteGroups_actionPerformed(ActionEvent e)
2854 protected void createGroup_actionPerformed(ActionEvent e)
2858 protected void unGroup_actionPerformed(ActionEvent e)
2862 protected void copy_actionPerformed(ActionEvent e)
2866 protected void cut_actionPerformed(ActionEvent e)
2870 protected void delete_actionPerformed(ActionEvent e)
2874 protected void pasteNew_actionPerformed(ActionEvent e)
2878 protected void pasteThis_actionPerformed(ActionEvent e)
2882 protected void applyToAllGroups_actionPerformed()
2886 public void createPNG(java.io.File f)
2890 protected void font_actionPerformed(ActionEvent e)
2894 protected void seqLimit_actionPerformed(ActionEvent e)
2898 public void seqDBRef_actionPerformed(ActionEvent e)
2903 public void createEPS(java.io.File f)
2907 public void createSVG(java.io.File f)
2912 protected void loadTreeMenuItem_actionPerformed(ActionEvent e)
2918 * Template method to handle the 'load T-Coffee scores' menu event.
2920 * Subclasses override this method to provide a custom action.
2925 protected void loadScores_actionPerformed(ActionEvent event)
2931 * Template method to handle the 'Color T-Coffee scores' menu event.
2933 * Subclasses override this method to provide a custom action.
2935 protected void tcoffeeColorScheme_actionPerformed()
2940 protected void jpred_actionPerformed(ActionEvent e)
2944 protected void scaleAbove_actionPerformed(ActionEvent e)
2948 protected void scaleLeft_actionPerformed(ActionEvent e)
2952 protected void scaleRight_actionPerformed(ActionEvent e)
2956 protected void modifyPID_actionPerformed()
2960 protected void modifyConservation_actionPerformed()
2964 protected void saveAs_actionPerformed(ActionEvent e)
2968 protected void padGapsMenuitem_actionPerformed(ActionEvent e)
2972 public void vamsasStore_actionPerformed(ActionEvent e)
2977 public void vamsasLoad_actionPerformed(ActionEvent e)
2982 public void showTranslation_actionPerformed(ActionEvent e)
2987 public void featureSettings_actionPerformed(ActionEvent e)
2992 public void fetchSequence_actionPerformed(ActionEvent e)
2997 public void smoothFont_actionPerformed(ActionEvent e)
3002 public void annotationColour_actionPerformed()
3006 public void annotationColumn_actionPerformed(ActionEvent e)
3010 public void rnahelicesColour_actionPerformed()
3015 public void associatedData_actionPerformed(ActionEvent e)
3020 public void autoCalculate_actionPerformed(ActionEvent e)
3025 public void sortByTreeOption_actionPerformed(ActionEvent e)
3030 public void showAllSeqs_actionPerformed(ActionEvent e)
3035 public void showAllColumns_actionPerformed(ActionEvent e)
3040 public void hideSelSequences_actionPerformed(ActionEvent e)
3045 public void hideSelColumns_actionPerformed(ActionEvent e)
3050 public void hiddenMarkers_actionPerformed(ActionEvent e)
3055 public void findPdbId_actionPerformed(ActionEvent e)
3060 public void enterPdbId_actionPerformed(ActionEvent e)
3065 public void pdbFile_actionPerformed(ActionEvent e)
3070 public void invertColSel_actionPerformed(ActionEvent e)
3075 public void tabSelectionChanged(int sel)
3080 public void tabbedPane_mousePressed(MouseEvent e)
3085 public void tabbedPane_focusGained(FocusEvent e)
3090 public void save_actionPerformed(ActionEvent e)
3095 public void reload_actionPerformed(ActionEvent e)
3100 public void newView_actionPerformed(ActionEvent e)
3105 public void textColour_actionPerformed()
3110 public void idRightAlign_actionPerformed(ActionEvent e)
3115 public void expandViews_actionPerformed(ActionEvent e)
3120 public void gatherViews_actionPerformed(ActionEvent e)
3125 public void buildTreeMenu()
3130 public void pageSetup_actionPerformed(ActionEvent e)
3135 public void alignmentProperties()
3140 protected void expand_newalign(ActionEvent e)
3142 // TODO Auto-generated method stub
3146 protected boolean isShowAutoCalculatedAbove()
3148 return showAutoCalculatedAbove;
3151 protected void setShowAutoCalculatedAbove(boolean showAutoCalculatedAbove)
3153 this.showAutoCalculatedAbove = showAutoCalculatedAbove;
3156 protected SequenceAnnotationOrder getAnnotationSortOrder()
3158 return annotationSortOrder;
3161 protected void setAnnotationSortOrder(
3162 SequenceAnnotationOrder annotationSortOrder)
3164 this.annotationSortOrder = annotationSortOrder;
3167 public Map<KeyStroke, JMenuItem> getAccelerators()
3169 return this.accelerators;
3173 * Returns the selected index of the tabbed pane, or -1 if none selected
3174 * (including the case where the tabbed pane has not been made visible).
3178 public int getTabIndex()
3180 return tabbedPane.getSelectedIndex();
3183 public JPanel getStatusPanel()
3189 * Sets a reference to the containing split frame. Also makes the 'toggle
3190 * split view' menu item visible and checked.
3194 public void setSplitFrame(SplitContainerI sf)
3196 this.splitFrame = sf;
3199 this.showComplementMenuItem.setVisible(true);
3200 this.showComplementMenuItem.setState(true);
3204 public SplitContainerI getSplitViewContainer()
3206 return this.splitFrame;
3209 protected void showComplement_actionPerformed(boolean complement)