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.GridLayout;
41 import java.awt.Toolkit;
42 import java.awt.event.ActionEvent;
43 import java.awt.event.ActionListener;
44 import java.awt.event.FocusAdapter;
45 import java.awt.event.FocusEvent;
46 import java.awt.event.KeyEvent;
47 import java.awt.event.MouseAdapter;
48 import java.awt.event.MouseEvent;
49 import java.util.HashMap;
52 import javax.swing.BorderFactory;
53 import javax.swing.ButtonGroup;
54 import javax.swing.JCheckBoxMenuItem;
55 import javax.swing.JInternalFrame;
56 import javax.swing.JLabel;
57 import javax.swing.JMenu;
58 import javax.swing.JMenuBar;
59 import javax.swing.JMenuItem;
60 import javax.swing.JPanel;
61 import javax.swing.JRadioButtonMenuItem;
62 import javax.swing.JTabbedPane;
63 import javax.swing.KeyStroke;
64 import javax.swing.event.ChangeEvent;
65 import javax.swing.event.MenuEvent;
66 import javax.swing.event.MenuListener;
68 public class GAlignFrame extends JInternalFrame
70 protected static final String USER_DEFINED_COLOUR_SCHEME = "USER_DEFINED";
72 protected JMenuBar alignFrameMenuBar = new JMenuBar();
74 protected JMenuItem closeMenuItem = new JMenuItem();
76 protected JMenu colourMenu = new JMenu();
78 protected JMenu webService = new JMenu();
80 protected JMenuItem webServiceNoServices;
82 protected JCheckBoxMenuItem viewBoxesMenuItem = new JCheckBoxMenuItem();
84 protected JCheckBoxMenuItem viewTextMenuItem = new JCheckBoxMenuItem();
86 protected JMenu sortByAnnotScore = new JMenu();
88 public JLabel statusBar = new JLabel();
90 protected JMenu outputTextboxMenu = new JMenu();
92 protected JRadioButtonMenuItem textColour;
94 protected JRadioButtonMenuItem clustalColour;
96 protected JRadioButtonMenuItem zappoColour;
98 protected JRadioButtonMenuItem taylorColour;
100 protected JRadioButtonMenuItem hydrophobicityColour;
102 protected JRadioButtonMenuItem helixColour;
104 protected JRadioButtonMenuItem strandColour;
106 protected JRadioButtonMenuItem turnColour;
108 protected JRadioButtonMenuItem buriedColour;
110 protected JRadioButtonMenuItem userDefinedColour;
112 protected JRadioButtonMenuItem PIDColour;
114 protected JRadioButtonMenuItem BLOSUM62Colour;
116 protected JRadioButtonMenuItem nucleotideColour;
118 protected JRadioButtonMenuItem purinePyrimidineColour;
120 protected JRadioButtonMenuItem RNAInteractionColour;
122 // protected JRadioButtonMenuItem covariationColour;
124 protected JRadioButtonMenuItem tcoffeeColour;
126 protected JCheckBoxMenuItem annotationPanelMenuItem = new JCheckBoxMenuItem();
128 protected JCheckBoxMenuItem colourTextMenuItem = new JCheckBoxMenuItem();
130 protected JCheckBoxMenuItem showNonconservedMenuItem = new JCheckBoxMenuItem();
132 protected JMenuItem undoMenuItem = new JMenuItem();
134 protected JMenuItem redoMenuItem = new JMenuItem();
136 protected JCheckBoxMenuItem conservationMenuItem;
138 JRadioButtonMenuItem noColourmenuItem;
140 protected JCheckBoxMenuItem wrapMenuItem = new JCheckBoxMenuItem();
142 protected JCheckBoxMenuItem renderGapsMenuItem = new JCheckBoxMenuItem();
144 protected JCheckBoxMenuItem abovePIDThreshold;
146 public JCheckBoxMenuItem showSeqFeatures = new JCheckBoxMenuItem();
148 JMenuItem copy = new JMenuItem();
150 JMenuItem cut = new JMenuItem();
152 JMenu pasteMenu = new JMenu();
154 protected JCheckBoxMenuItem applyToAllGroups;
156 protected JCheckBoxMenuItem seqLimits = new JCheckBoxMenuItem();
158 protected JCheckBoxMenuItem scaleAbove = new JCheckBoxMenuItem();
160 protected JCheckBoxMenuItem scaleLeft = new JCheckBoxMenuItem();
162 protected JCheckBoxMenuItem scaleRight = new JCheckBoxMenuItem();
164 protected JMenuItem modifyPID;
166 protected JMenuItem modifyConservation;
168 protected JMenuItem annotationColour;
170 protected JMenu sortByTreeMenu = new JMenu();
172 protected JMenu sort = new JMenu();
174 protected JMenu calculateTree = new JMenu();
176 protected JCheckBoxMenuItem padGapsMenuitem = new JCheckBoxMenuItem();
178 protected JCheckBoxMenuItem showNpFeatsMenuitem = new JCheckBoxMenuItem();
180 protected JCheckBoxMenuItem showDbRefsMenuitem = new JCheckBoxMenuItem();
182 protected ButtonGroup colours = new ButtonGroup();
184 protected JMenuItem showTranslation = new JMenuItem();
186 protected JMenuItem showReverse = new JMenuItem();
188 protected JMenuItem showReverseComplement = new JMenuItem();
190 protected JMenu showProducts = new JMenu();
192 protected JMenuItem runGroovy = new JMenuItem();
194 protected JMenuItem rnahelicesColour;
196 protected JCheckBoxMenuItem autoCalculate = new JCheckBoxMenuItem();
198 protected JCheckBoxMenuItem sortByTree = new JCheckBoxMenuItem();
200 protected JCheckBoxMenuItem listenToViewSelections = new JCheckBoxMenuItem();
202 protected JPanel statusPanel = new JPanel();
204 protected JMenuItem showAllSeqAnnotations = new JMenuItem();
206 protected JMenuItem hideAllSeqAnnotations = new JMenuItem();
208 protected JMenuItem showAllAlAnnotations = new JMenuItem();
210 protected JMenuItem hideAllAlAnnotations = new JMenuItem();
212 protected JCheckBoxMenuItem showComplementMenuItem = new JCheckBoxMenuItem();
214 protected JCheckBoxMenuItem hiddenMarkers = new JCheckBoxMenuItem();
216 protected JTabbedPane tabbedPane = new JTabbedPane();
218 protected JMenuItem reload = new JMenuItem();
220 protected JMenu formatMenu = new JMenu();
222 protected JCheckBoxMenuItem idRightAlign = new JCheckBoxMenuItem();
224 protected JCheckBoxMenuItem centreColumnLabelsMenuItem = new JCheckBoxMenuItem();
226 protected JCheckBoxMenuItem followHighlightMenuItem = new JCheckBoxMenuItem();
228 protected JMenuItem gatherViews = new JMenuItem();
230 protected JMenuItem expandViews = new JMenuItem();
232 protected JCheckBoxMenuItem showGroupConsensus = new JCheckBoxMenuItem();
234 protected JCheckBoxMenuItem showGroupConservation = new JCheckBoxMenuItem();
236 protected JCheckBoxMenuItem showConsensusHistogram = new JCheckBoxMenuItem();
238 protected JCheckBoxMenuItem showSequenceLogo = new JCheckBoxMenuItem();
240 protected JCheckBoxMenuItem normaliseSequenceLogo = new JCheckBoxMenuItem();
242 protected JCheckBoxMenuItem applyAutoAnnotationSettings = new JCheckBoxMenuItem();
244 private SequenceAnnotationOrder annotationSortOrder;
246 private boolean showAutoCalculatedAbove = false;
248 private Map<KeyStroke, JMenuItem> accelerators = new HashMap<KeyStroke, JMenuItem>();
250 private SplitContainerI splitFrame;
257 setJMenuBar(alignFrameMenuBar);
259 // dynamically fill save as menu with available formats
260 for (String ff : FileFormat.getWritableFormats(true))
262 JMenuItem item = new JMenuItem(ff);
264 item.addActionListener(new ActionListener()
267 public void actionPerformed(ActionEvent e)
269 outputText_actionPerformed(e);
273 outputTextboxMenu.add(item);
275 } catch (Exception e)
277 System.err.println(e.toString());
280 if (!Platform.isAMac())
282 closeMenuItem.setMnemonic('C');
283 outputTextboxMenu.setMnemonic('T');
284 undoMenuItem.setMnemonic('Z');
285 redoMenuItem.setMnemonic('0');
286 copy.setMnemonic('C');
287 cut.setMnemonic('U');
288 pasteMenu.setMnemonic('P');
289 reload.setMnemonic('R');
293 public void setColourSelected(String defaultColour)
295 JalviewColourScheme scheme = JalviewColourScheme.forName(defaultColour);
298 noColourmenuItem.setSelected(true);
305 clustalColour.setSelected(true);
308 BLOSUM62Colour.setSelected(true);
311 PIDColour.setSelected(true);
314 zappoColour.setSelected(true);
317 taylorColour.setSelected(true);
320 hydrophobicityColour.setSelected(true);
323 helixColour.setSelected(true);
326 strandColour.setSelected(true);
329 turnColour.setSelected(true);
332 buriedColour.setSelected(true);
335 nucleotideColour.setSelected(true);
338 tcoffeeColour.setSelected(true);
340 case PurinePyrimidine:
341 purinePyrimidineColour.setSelected(true);
343 // case RNAInteraction:
344 // RNAInteractionColour.setSelected(true);
347 rnahelicesColour.setSelected(true);
350 userDefinedColour.setSelected(true);
353 noColourmenuItem.setSelected(true);
358 private void jbInit() throws Exception
363 JMenuItem saveAs = new JMenuItem(
364 MessageManager.getString("action.save_as"));
365 ActionListener al = new ActionListener()
368 public void actionPerformed(ActionEvent e)
370 saveAs_actionPerformed(e);
374 // FIXME getDefaultToolkit throws an exception in Headless mode
375 KeyStroke keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_S, Toolkit
376 .getDefaultToolkit().getMenuShortcutKeyMask()
377 | KeyEvent.SHIFT_MASK, false);
378 addMenuActionAndAccelerator(keyStroke, saveAs, al);
380 closeMenuItem.setText(MessageManager.getString("action.close"));
381 keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_W, Toolkit
382 .getDefaultToolkit().getMenuShortcutKeyMask(), false);
383 al = new ActionListener()
386 public void actionPerformed(ActionEvent e)
388 closeMenuItem_actionPerformed(false);
391 addMenuActionAndAccelerator(keyStroke, closeMenuItem, al);
393 JMenu editMenu = new JMenu(MessageManager.getString("action.edit"));
394 JMenu viewMenu = new JMenu(MessageManager.getString("action.view"));
395 JMenu annotationsMenu = new JMenu(
396 MessageManager.getString("action.annotations"));
397 JMenu showMenu = new JMenu(MessageManager.getString("action.show"));
398 colourMenu.setText(MessageManager.getString("action.colour"));
399 JMenu calculateMenu = new JMenu(
400 MessageManager.getString("action.calculate"));
401 webService.setText(MessageManager.getString("action.web_service"));
402 JMenuItem selectAllSequenceMenuItem = new JMenuItem(
403 MessageManager.getString("action.select_all"));
404 keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_A, Toolkit
405 .getDefaultToolkit().getMenuShortcutKeyMask(), false);
406 al = new ActionListener()
409 public void actionPerformed(ActionEvent e)
411 selectAllSequenceMenuItem_actionPerformed(e);
414 addMenuActionAndAccelerator(keyStroke, selectAllSequenceMenuItem, al);
416 JMenuItem deselectAllSequenceMenuItem = new JMenuItem(
417 MessageManager.getString("action.deselect_all"));
418 keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_ESCAPE, 0, false);
419 al = new ActionListener()
422 public void actionPerformed(ActionEvent e)
424 deselectAllSequenceMenuItem_actionPerformed(e);
427 addMenuActionAndAccelerator(keyStroke, deselectAllSequenceMenuItem, al);
429 JMenuItem invertSequenceMenuItem = new JMenuItem(
430 MessageManager.getString("action.invert_sequence_selection"));
431 keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_I, Toolkit
432 .getDefaultToolkit().getMenuShortcutKeyMask(), false);
433 al = new ActionListener()
436 public void actionPerformed(ActionEvent e)
438 invertSequenceMenuItem_actionPerformed(e);
441 addMenuActionAndAccelerator(keyStroke, invertSequenceMenuItem, al);
443 JMenuItem grpsFromSelection = new JMenuItem(
444 MessageManager.getString("action.make_groups_selection"));
445 grpsFromSelection.addActionListener(new ActionListener()
448 public void actionPerformed(ActionEvent e)
450 makeGrpsFromSelection_actionPerformed(e);
453 JMenuItem expandAlignment = new JMenuItem(
454 MessageManager.getString("action.view_flanking_regions"));
455 expandAlignment.setToolTipText(MessageManager
456 .getString("label.view_flanking_regions"));
457 expandAlignment.addActionListener(new ActionListener()
460 public void actionPerformed(ActionEvent e)
465 JMenuItem remove2LeftMenuItem = new JMenuItem(
466 MessageManager.getString("action.remove_left"));
467 keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_L, Toolkit
468 .getDefaultToolkit().getMenuShortcutKeyMask(), false);
469 al = new ActionListener()
472 public void actionPerformed(ActionEvent e)
474 remove2LeftMenuItem_actionPerformed(e);
477 addMenuActionAndAccelerator(keyStroke, remove2LeftMenuItem, al);
479 JMenuItem remove2RightMenuItem = new JMenuItem(
480 MessageManager.getString("action.remove_right"));
481 keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_R, Toolkit
482 .getDefaultToolkit().getMenuShortcutKeyMask(), false);
483 al = new ActionListener()
486 public void actionPerformed(ActionEvent e)
488 remove2RightMenuItem_actionPerformed(e);
491 addMenuActionAndAccelerator(keyStroke, remove2RightMenuItem, al);
493 JMenuItem removeGappedColumnMenuItem = new JMenuItem(
494 MessageManager.getString("action.remove_empty_columns"));
495 keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_E, Toolkit
496 .getDefaultToolkit().getMenuShortcutKeyMask(), false);
497 al = new ActionListener()
500 public void actionPerformed(ActionEvent e)
502 removeGappedColumnMenuItem_actionPerformed(e);
505 addMenuActionAndAccelerator(keyStroke, removeGappedColumnMenuItem, al);
507 JMenuItem removeAllGapsMenuItem = new JMenuItem(
508 MessageManager.getString("action.remove_all_gaps"));
509 keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_E, Toolkit
510 .getDefaultToolkit().getMenuShortcutKeyMask()
511 | KeyEvent.SHIFT_MASK, false);
512 al = new ActionListener()
515 public void actionPerformed(ActionEvent e)
517 removeAllGapsMenuItem_actionPerformed(e);
520 addMenuActionAndAccelerator(keyStroke, removeAllGapsMenuItem, al);
522 JMenuItem justifyLeftMenuItem = new JMenuItem(
523 MessageManager.getString("action.left_justify_alignment"));
524 justifyLeftMenuItem.addActionListener(new ActionListener()
527 public void actionPerformed(ActionEvent e)
529 justifyLeftMenuItem_actionPerformed(e);
532 JMenuItem justifyRightMenuItem = new JMenuItem(
533 MessageManager.getString("action.right_justify_alignment"));
534 justifyRightMenuItem.addActionListener(new ActionListener()
537 public void actionPerformed(ActionEvent e)
539 justifyRightMenuItem_actionPerformed(e);
542 viewBoxesMenuItem.setText(MessageManager.getString("action.boxes"));
543 viewBoxesMenuItem.setState(true);
544 viewBoxesMenuItem.addActionListener(new ActionListener()
547 public void actionPerformed(ActionEvent e)
549 viewBoxesMenuItem_actionPerformed(e);
552 viewTextMenuItem.setText(MessageManager.getString("action.text"));
553 viewTextMenuItem.setState(true);
554 viewTextMenuItem.addActionListener(new ActionListener()
557 public void actionPerformed(ActionEvent e)
559 viewTextMenuItem_actionPerformed(e);
562 showNonconservedMenuItem.setText(MessageManager
563 .getString("label.show_non_conserved"));
564 showNonconservedMenuItem.setState(false);
565 showNonconservedMenuItem.addActionListener(new ActionListener()
568 public void actionPerformed(ActionEvent e)
570 showUnconservedMenuItem_actionPerformed(e);
573 JMenuItem sortPairwiseMenuItem = new JMenuItem(
574 MessageManager.getString("action.by_pairwise_id"));
575 sortPairwiseMenuItem.addActionListener(new ActionListener()
578 public void actionPerformed(ActionEvent e)
580 sortPairwiseMenuItem_actionPerformed(e);
583 JMenuItem sortIDMenuItem = new JMenuItem(
584 MessageManager.getString("action.by_id"));
585 sortIDMenuItem.addActionListener(new ActionListener()
588 public void actionPerformed(ActionEvent e)
590 sortIDMenuItem_actionPerformed(e);
593 JMenuItem sortLengthMenuItem = new JMenuItem(
594 MessageManager.getString("action.by_length"));
595 sortLengthMenuItem.addActionListener(new ActionListener()
598 public void actionPerformed(ActionEvent e)
600 sortLengthMenuItem_actionPerformed(e);
603 JMenuItem sortGroupMenuItem = new JMenuItem(
604 MessageManager.getString("action.by_group"));
605 sortGroupMenuItem.addActionListener(new ActionListener()
608 public void actionPerformed(ActionEvent e)
610 sortGroupMenuItem_actionPerformed(e);
614 JMenuItem removeRedundancyMenuItem = new JMenuItem(
615 MessageManager.getString("action.remove_redundancy"));
616 keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_D, Toolkit
617 .getDefaultToolkit().getMenuShortcutKeyMask(), false);
618 al = new ActionListener()
621 public void actionPerformed(ActionEvent e)
623 removeRedundancyMenuItem_actionPerformed(e);
626 addMenuActionAndAccelerator(keyStroke, removeRedundancyMenuItem, al);
628 JMenuItem pairwiseAlignmentMenuItem = new JMenuItem(
629 MessageManager.getString("action.pairwise_alignment"));
630 pairwiseAlignmentMenuItem.addActionListener(new ActionListener()
633 public void actionPerformed(ActionEvent e)
635 pairwiseAlignmentMenuItem_actionPerformed(e);
638 JMenuItem PCAMenuItem = new JMenuItem(
639 MessageManager.getString("label.principal_component_analysis"));
640 PCAMenuItem.addActionListener(new ActionListener()
643 public void actionPerformed(ActionEvent e)
645 PCAMenuItem_actionPerformed(e);
648 JMenuItem averageDistanceTreeMenuItem = new JMenuItem(
649 MessageManager.getString("label.average_distance_identity"));
650 averageDistanceTreeMenuItem.addActionListener(new ActionListener()
653 public void actionPerformed(ActionEvent e)
655 averageDistanceTreeMenuItem_actionPerformed(e);
658 JMenuItem neighbourTreeMenuItem = new JMenuItem(
659 MessageManager.getString("label.neighbour_joining_identity"));
660 neighbourTreeMenuItem.addActionListener(new ActionListener()
663 public void actionPerformed(ActionEvent e)
665 neighbourTreeMenuItem_actionPerformed(e);
669 this.getContentPane().setLayout(new BorderLayout());
670 alignFrameMenuBar.setFont(new java.awt.Font("Verdana", 0, 11));
671 statusBar.setBackground(Color.white);
672 statusBar.setFont(new java.awt.Font("Verdana", 0, 11));
673 statusBar.setBorder(BorderFactory.createLineBorder(Color.black));
674 statusBar.setText(MessageManager.getString("label.status_bar"));
675 outputTextboxMenu.setText(MessageManager
676 .getString("label.out_to_textbox"));
679 JMenuItem avDistanceTreeBlosumMenuItem = new JMenuItem(
680 MessageManager.getString("label.average_distance_bloslum62"));
681 avDistanceTreeBlosumMenuItem.addActionListener(new ActionListener()
684 public void actionPerformed(ActionEvent e)
686 avTreeBlosumMenuItem_actionPerformed(e);
689 JMenuItem njTreeBlosumMenuItem = new JMenuItem(
690 MessageManager.getString("label.neighbour_blosum62"));
691 njTreeBlosumMenuItem.addActionListener(new ActionListener()
694 public void actionPerformed(ActionEvent e)
696 njTreeBlosumMenuItem_actionPerformed(e);
699 annotationPanelMenuItem.setActionCommand("");
700 annotationPanelMenuItem.setText(MessageManager
701 .getString("label.show_annotations"));
702 annotationPanelMenuItem.setState(Cache.getDefault("SHOW_ANNOTATIONS",
704 annotationPanelMenuItem.addActionListener(new ActionListener()
707 public void actionPerformed(ActionEvent e)
709 annotationPanelMenuItem_actionPerformed(e);
712 showAllAlAnnotations.setText(MessageManager
713 .getString("label.show_all_al_annotations"));
714 final boolean isAnnotationPanelShown = annotationPanelMenuItem
716 showAllAlAnnotations.setEnabled(isAnnotationPanelShown);
717 showAllAlAnnotations.addActionListener(new ActionListener()
720 public void actionPerformed(ActionEvent e)
722 showAllAnnotations_actionPerformed(false, true);
725 hideAllAlAnnotations.setText(MessageManager
726 .getString("label.hide_all_al_annotations"));
727 hideAllAlAnnotations.setEnabled(isAnnotationPanelShown);
728 hideAllAlAnnotations.addActionListener(new ActionListener()
731 public void actionPerformed(ActionEvent e)
733 hideAllAnnotations_actionPerformed(false, true);
736 showAllSeqAnnotations.setText(MessageManager
737 .getString("label.show_all_seq_annotations"));
738 showAllSeqAnnotations.setEnabled(isAnnotationPanelShown);
739 showAllSeqAnnotations.addActionListener(new ActionListener()
742 public void actionPerformed(ActionEvent e)
744 showAllAnnotations_actionPerformed(true, false);
747 hideAllSeqAnnotations.setText(MessageManager
748 .getString("label.hide_all_seq_annotations"));
749 hideAllSeqAnnotations.setEnabled(isAnnotationPanelShown);
750 hideAllSeqAnnotations.addActionListener(new ActionListener()
753 public void actionPerformed(ActionEvent e)
755 hideAllAnnotations_actionPerformed(true, false);
758 SequenceAnnotationOrder sortAnnotationsBy = SequenceAnnotationOrder
759 .valueOf(Cache.getDefault(Preferences.SORT_ANNOTATIONS,
760 SequenceAnnotationOrder.NONE.name()));
761 final JCheckBoxMenuItem sortAnnBySequence = new JCheckBoxMenuItem(
762 MessageManager.getString("label.sort_annotations_by_sequence"));
763 final JCheckBoxMenuItem sortAnnByLabel = new JCheckBoxMenuItem(
764 MessageManager.getString("label.sort_annotations_by_label"));
767 .setSelected(sortAnnotationsBy == SequenceAnnotationOrder.SEQUENCE_AND_LABEL);
768 sortAnnBySequence.addActionListener(new ActionListener()
771 public void actionPerformed(ActionEvent e)
773 boolean newState = sortAnnBySequence.getState();
774 sortAnnByLabel.setSelected(false);
775 setAnnotationSortOrder(newState ? SequenceAnnotationOrder.SEQUENCE_AND_LABEL
776 : SequenceAnnotationOrder.NONE);
777 sortAnnotations_actionPerformed();
781 .setSelected(sortAnnotationsBy == SequenceAnnotationOrder.LABEL_AND_SEQUENCE);
782 sortAnnByLabel.addActionListener(new ActionListener()
785 public void actionPerformed(ActionEvent e)
787 boolean newState = sortAnnByLabel.getState();
788 sortAnnBySequence.setSelected(false);
789 setAnnotationSortOrder(newState ? SequenceAnnotationOrder.LABEL_AND_SEQUENCE
790 : SequenceAnnotationOrder.NONE);
791 sortAnnotations_actionPerformed();
794 colourTextMenuItem = new JCheckBoxMenuItem(
796 .getString("label.colour_text"));
797 colourTextMenuItem.addActionListener(new ActionListener()
800 public void actionPerformed(ActionEvent e)
802 colourTextMenuItem_actionPerformed(e);
806 JMenuItem htmlMenuItem = new JMenuItem(
807 MessageManager.getString("label.html"));
808 htmlMenuItem.addActionListener(new ActionListener()
811 public void actionPerformed(ActionEvent e)
813 htmlMenuItem_actionPerformed(e);
817 JMenuItem createBioJS = new JMenuItem(
818 MessageManager.getString("label.biojs_html_export"));
819 createBioJS.addActionListener(new java.awt.event.ActionListener()
822 public void actionPerformed(ActionEvent e)
824 bioJSMenuItem_actionPerformed(e);
828 JMenuItem overviewMenuItem = new JMenuItem(
829 MessageManager.getString("label.overview_window"));
830 overviewMenuItem.addActionListener(new ActionListener()
833 public void actionPerformed(ActionEvent e)
835 overviewMenuItem_actionPerformed(e);
839 undoMenuItem.setEnabled(false);
840 undoMenuItem.setText(MessageManager.getString("action.undo"));
841 keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_Z, Toolkit
842 .getDefaultToolkit().getMenuShortcutKeyMask(), false);
843 al = new ActionListener()
846 public void actionPerformed(ActionEvent e)
848 undoMenuItem_actionPerformed(e);
851 addMenuActionAndAccelerator(keyStroke, undoMenuItem, al);
853 redoMenuItem.setEnabled(false);
854 redoMenuItem.setText(MessageManager.getString("action.redo"));
855 keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_Y, Toolkit
856 .getDefaultToolkit().getMenuShortcutKeyMask(), false);
857 al = new ActionListener()
860 public void actionPerformed(ActionEvent e)
862 redoMenuItem_actionPerformed(e);
865 addMenuActionAndAccelerator(keyStroke, redoMenuItem, al);
867 wrapMenuItem.setText(MessageManager.getString("label.wrap"));
868 wrapMenuItem.addActionListener(new ActionListener()
871 public void actionPerformed(ActionEvent e)
873 wrapMenuItem_actionPerformed(e);
877 JMenuItem printMenuItem = new JMenuItem(
878 MessageManager.getString("action.print"));
879 keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_P, Toolkit
880 .getDefaultToolkit().getMenuShortcutKeyMask(), false);
881 al = new ActionListener()
884 public void actionPerformed(ActionEvent e)
886 printMenuItem_actionPerformed(e);
889 addMenuActionAndAccelerator(keyStroke, printMenuItem, al);
892 .setText(MessageManager.getString("action.show_gaps"));
893 renderGapsMenuItem.setState(true);
894 renderGapsMenuItem.addActionListener(new ActionListener()
897 public void actionPerformed(ActionEvent e)
899 renderGapsMenuItem_actionPerformed(e);
903 JMenuItem findMenuItem = new JMenuItem(
904 MessageManager.getString("action.find"));
905 keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_F, Toolkit
906 .getDefaultToolkit().getMenuShortcutKeyMask(), false);
907 findMenuItem.setToolTipText(JvSwingUtils.wrapTooltip(true,
908 MessageManager.getString("label.find_tip")));
909 al = new ActionListener()
912 public void actionPerformed(ActionEvent e)
914 findMenuItem_actionPerformed(e);
917 addMenuActionAndAccelerator(keyStroke, findMenuItem, al);
919 showSeqFeatures.setText(MessageManager
920 .getString("label.show_sequence_features"));
921 showSeqFeatures.addActionListener(new ActionListener()
924 public void actionPerformed(ActionEvent actionEvent)
926 showSeqFeatures_actionPerformed(actionEvent);
930 * showSeqFeaturesHeight.setText("Vary Sequence Feature Height");
931 * showSeqFeaturesHeight.addActionListener(new ActionListener() { public
932 * void actionPerformed(ActionEvent actionEvent) {
933 * showSeqFeaturesHeight_actionPerformed(actionEvent); } });
935 showDbRefsMenuitem.setText(MessageManager
936 .getString("label.show_database_refs"));
937 showDbRefsMenuitem.addActionListener(new ActionListener()
941 public void actionPerformed(ActionEvent e)
943 showDbRefs_actionPerformed(e);
947 showNpFeatsMenuitem.setText(MessageManager
948 .getString("label.show_non_positional_features"));
949 showNpFeatsMenuitem.addActionListener(new ActionListener()
953 public void actionPerformed(ActionEvent e)
955 showNpFeats_actionPerformed(e);
959 showGroupConservation.setText(MessageManager
960 .getString("label.group_conservation"));
961 showGroupConservation.addActionListener(new ActionListener()
965 public void actionPerformed(ActionEvent e)
967 showGroupConservation_actionPerformed(e);
972 showGroupConsensus.setText(MessageManager
973 .getString("label.group_consensus"));
974 showGroupConsensus.addActionListener(new ActionListener()
978 public void actionPerformed(ActionEvent e)
980 showGroupConsensus_actionPerformed(e);
984 showConsensusHistogram.setText(MessageManager
985 .getString("label.show_consensus_histogram"));
986 showConsensusHistogram.addActionListener(new ActionListener()
990 public void actionPerformed(ActionEvent e)
992 showConsensusHistogram_actionPerformed(e);
996 showSequenceLogo.setText(MessageManager
997 .getString("label.show_consensus_logo"));
998 showSequenceLogo.addActionListener(new ActionListener()
1002 public void actionPerformed(ActionEvent e)
1004 showSequenceLogo_actionPerformed(e);
1008 normaliseSequenceLogo.setText(MessageManager
1009 .getString("label.norm_consensus_logo"));
1010 normaliseSequenceLogo.addActionListener(new ActionListener()
1014 public void actionPerformed(ActionEvent e)
1016 normaliseSequenceLogo_actionPerformed(e);
1020 applyAutoAnnotationSettings.setText(MessageManager
1021 .getString("label.apply_all_groups"));
1022 applyAutoAnnotationSettings.setState(false);
1023 applyAutoAnnotationSettings.setVisible(true);
1024 applyAutoAnnotationSettings.addActionListener(new ActionListener()
1027 public void actionPerformed(ActionEvent e)
1029 applyAutoAnnotationSettings_actionPerformed(e);
1033 ButtonGroup buttonGroup = new ButtonGroup();
1034 final JRadioButtonMenuItem showAutoFirst = new JRadioButtonMenuItem(
1035 MessageManager.getString("label.show_first"));
1036 final JRadioButtonMenuItem showAutoLast = new JRadioButtonMenuItem(
1037 MessageManager.getString("label.show_last"));
1038 buttonGroup.add(showAutoFirst);
1039 buttonGroup.add(showAutoLast);
1040 final boolean autoFirst = Cache.getDefault(
1041 Preferences.SHOW_AUTOCALC_ABOVE, false);
1042 showAutoFirst.setSelected(autoFirst);
1043 setShowAutoCalculatedAbove(autoFirst);
1044 showAutoFirst.addActionListener(new ActionListener()
1047 public void actionPerformed(ActionEvent e)
1049 setShowAutoCalculatedAbove(showAutoFirst.isSelected());
1050 sortAnnotations_actionPerformed();
1053 showAutoLast.setSelected(!showAutoFirst.isSelected());
1054 showAutoLast.addActionListener(new ActionListener()
1057 public void actionPerformed(ActionEvent e)
1059 setShowAutoCalculatedAbove(!showAutoLast.isSelected());
1060 sortAnnotations_actionPerformed();
1064 JMenuItem deleteGroups = new JMenuItem(
1065 MessageManager.getString("action.undefine_groups"));
1066 keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_U, Toolkit
1067 .getDefaultToolkit().getMenuShortcutKeyMask(), false);
1068 al = new ActionListener()
1071 public void actionPerformed(ActionEvent e)
1073 deleteGroups_actionPerformed(e);
1076 addMenuActionAndAccelerator(keyStroke, deleteGroups, al);
1078 JMenuItem annotationColumn = new JMenuItem(
1079 MessageManager.getString("action.select_by_annotation"));
1080 annotationColumn.addActionListener(new ActionListener()
1083 public void actionPerformed(ActionEvent e)
1085 annotationColumn_actionPerformed(e);
1089 JMenuItem createGroup = new JMenuItem(
1090 MessageManager.getString("action.create_groups"));
1091 keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_G, Toolkit
1092 .getDefaultToolkit().getMenuShortcutKeyMask(), false);
1093 al = new ActionListener()
1096 public void actionPerformed(ActionEvent e)
1098 createGroup_actionPerformed(e);
1101 addMenuActionAndAccelerator(keyStroke, createGroup, al);
1103 JMenuItem unGroup = new JMenuItem(
1104 MessageManager.getString("action.remove_group"));
1105 keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_G, Toolkit
1106 .getDefaultToolkit().getMenuShortcutKeyMask()
1107 | KeyEvent.SHIFT_MASK, false);
1108 al = new ActionListener()
1111 public void actionPerformed(ActionEvent e)
1113 unGroup_actionPerformed(e);
1116 addMenuActionAndAccelerator(keyStroke, unGroup, al);
1118 copy.setText(MessageManager.getString("action.copy"));
1119 keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_C, Toolkit
1120 .getDefaultToolkit().getMenuShortcutKeyMask(), false);
1122 al = new ActionListener()
1125 public void actionPerformed(ActionEvent e)
1127 copy_actionPerformed(e);
1130 addMenuActionAndAccelerator(keyStroke, copy, al);
1132 cut.setText(MessageManager.getString("action.cut"));
1133 keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_X, Toolkit
1134 .getDefaultToolkit().getMenuShortcutKeyMask(), false);
1135 al = new ActionListener()
1138 public void actionPerformed(ActionEvent e)
1140 cut_actionPerformed(e);
1143 addMenuActionAndAccelerator(keyStroke, cut, al);
1145 JMenuItem delete = new JMenuItem(
1146 MessageManager.getString("action.delete"));
1147 delete.addActionListener(new ActionListener()
1150 public void actionPerformed(ActionEvent e)
1152 delete_actionPerformed(e);
1156 pasteMenu.setText(MessageManager.getString("action.paste"));
1157 JMenuItem pasteNew = new JMenuItem(
1158 MessageManager.getString("label.to_new_alignment"));
1159 keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_V, Toolkit
1160 .getDefaultToolkit().getMenuShortcutKeyMask()
1161 | KeyEvent.SHIFT_MASK, false);
1162 al = new ActionListener()
1165 public void actionPerformed(ActionEvent e)
1167 pasteNew_actionPerformed(e);
1170 addMenuActionAndAccelerator(keyStroke, pasteNew, al);
1172 JMenuItem pasteThis = new JMenuItem(
1173 MessageManager.getString("label.to_this_alignment"));
1174 keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_V, Toolkit
1175 .getDefaultToolkit().getMenuShortcutKeyMask(), false);
1176 al = new ActionListener()
1179 public void actionPerformed(ActionEvent e)
1181 pasteThis_actionPerformed(e);
1184 addMenuActionAndAccelerator(keyStroke, pasteThis, al);
1186 JMenuItem createPNG = new JMenuItem("PNG");
1187 createPNG.addActionListener(new ActionListener()
1190 public void actionPerformed(ActionEvent e)
1195 createPNG.setActionCommand(MessageManager
1196 .getString("label.save_png_image"));
1198 JMenuItem font = new JMenuItem(MessageManager.getString("action.font"));
1199 font.addActionListener(new ActionListener()
1202 public void actionPerformed(ActionEvent e)
1204 font_actionPerformed(e);
1207 seqLimits.setText(MessageManager
1208 .getString("label.show_sequence_limits"));
1209 seqLimits.setState(jalview.bin.Cache.getDefault("SHOW_JVSUFFIX", true));
1210 seqLimits.addActionListener(new ActionListener()
1213 public void actionPerformed(ActionEvent e)
1215 seqLimit_actionPerformed(e);
1218 JMenuItem epsFile = new JMenuItem("EPS");
1219 epsFile.addActionListener(new ActionListener()
1222 public void actionPerformed(ActionEvent e)
1228 JMenuItem createSVG = new JMenuItem("SVG");
1229 createSVG.addActionListener(new ActionListener()
1232 public void actionPerformed(ActionEvent e)
1238 JMenuItem loadTreeMenuItem = new JMenuItem(
1239 MessageManager.getString("label.load_associated_tree"));
1240 loadTreeMenuItem.setActionCommand(MessageManager
1241 .getString("label.load_tree_for_sequence_set"));
1242 loadTreeMenuItem.addActionListener(new ActionListener()
1245 public void actionPerformed(ActionEvent e)
1247 loadTreeMenuItem_actionPerformed(e);
1251 scaleAbove.setVisible(false);
1252 scaleAbove.setText(MessageManager.getString("action.scale_above"));
1253 scaleAbove.addActionListener(new ActionListener()
1256 public void actionPerformed(ActionEvent e)
1258 scaleAbove_actionPerformed(e);
1261 scaleLeft.setVisible(false);
1262 scaleLeft.setSelected(true);
1263 scaleLeft.setText(MessageManager.getString("action.scale_left"));
1264 scaleLeft.addActionListener(new ActionListener()
1267 public void actionPerformed(ActionEvent e)
1269 scaleLeft_actionPerformed(e);
1272 scaleRight.setVisible(false);
1273 scaleRight.setSelected(true);
1274 scaleRight.setText(MessageManager.getString("action.scale_right"));
1275 scaleRight.addActionListener(new ActionListener()
1278 public void actionPerformed(ActionEvent e)
1280 scaleRight_actionPerformed(e);
1283 centreColumnLabelsMenuItem.setVisible(true);
1284 centreColumnLabelsMenuItem.setState(false);
1285 centreColumnLabelsMenuItem.setText(MessageManager
1286 .getString("label.centre_column_labels"));
1287 centreColumnLabelsMenuItem.addActionListener(new ActionListener()
1290 public void actionPerformed(ActionEvent e)
1292 centreColumnLabels_actionPerformed(e);
1295 followHighlightMenuItem.setVisible(true);
1296 followHighlightMenuItem.setState(true);
1297 followHighlightMenuItem.setText(MessageManager
1298 .getString("label.automatic_scrolling"));
1299 followHighlightMenuItem.addActionListener(new ActionListener()
1303 public void actionPerformed(ActionEvent e)
1305 followHighlight_actionPerformed();
1311 .setText(MessageManager.getString("action.by_tree_order"));
1312 sort.setText(MessageManager.getString("action.sort"));
1313 sort.addMenuListener(new MenuListener()
1316 public void menuSelected(MenuEvent e)
1322 public void menuDeselected(MenuEvent e)
1327 public void menuCanceled(MenuEvent e)
1331 sortByAnnotScore.setText(MessageManager
1332 .getString("label.sort_by_score"));
1333 sort.add(sortByAnnotScore);
1334 sort.addMenuListener(new javax.swing.event.MenuListener()
1338 public void menuCanceled(MenuEvent e)
1343 public void menuDeselected(MenuEvent e)
1348 public void menuSelected(MenuEvent e)
1350 buildSortByAnnotationScoresMenu();
1353 sortByAnnotScore.setVisible(false);
1356 .setText(MessageManager.getString("action.calculate_tree"));
1358 padGapsMenuitem.setText(MessageManager.getString("label.pad_gaps"));
1359 padGapsMenuitem.setState(jalview.bin.Cache
1360 .getDefault("PAD_GAPS", false));
1361 padGapsMenuitem.addActionListener(new ActionListener()
1364 public void actionPerformed(ActionEvent e)
1366 padGapsMenuitem_actionPerformed(e);
1369 JMenuItem vamsasStore = new JMenuItem(
1370 MessageManager.getString("label.vamsas_store"));
1371 vamsasStore.setVisible(false);
1372 vamsasStore.addActionListener(new ActionListener()
1375 public void actionPerformed(ActionEvent e)
1377 vamsasStore_actionPerformed(e);
1380 showTranslation.setText(MessageManager
1381 .getString("label.translate_cDNA"));
1382 showTranslation.addActionListener(new ActionListener()
1385 public void actionPerformed(ActionEvent e)
1387 showTranslation_actionPerformed(e);
1390 showReverse.setText(MessageManager.getString("label.reverse"));
1391 showReverse.addActionListener(new ActionListener()
1394 public void actionPerformed(ActionEvent e)
1396 showReverse_actionPerformed(false);
1399 showReverseComplement.setText(MessageManager
1400 .getString("label.reverse_complement"));
1401 showReverseComplement.addActionListener(new ActionListener()
1404 public void actionPerformed(ActionEvent e)
1406 showReverse_actionPerformed(true);
1410 JMenuItem extractScores = new JMenuItem(
1411 MessageManager.getString("label.extract_scores"));
1412 extractScores.addActionListener(new ActionListener()
1415 public void actionPerformed(ActionEvent e)
1417 extractScores_actionPerformed(e);
1420 extractScores.setVisible(true);
1421 // JBPNote: TODO: make gui for regex based score extraction
1423 // for show products actions see AlignFrame.canShowProducts
1424 showProducts.setText(MessageManager.getString("label.get_cross_refs"));
1426 runGroovy.setText(MessageManager.getString("label.run_groovy"));
1427 runGroovy.setToolTipText(MessageManager
1428 .getString("label.run_groovy_tip"));
1429 runGroovy.addActionListener(new ActionListener()
1432 public void actionPerformed(ActionEvent e)
1434 runGroovy_actionPerformed();
1438 JMenuItem openFeatureSettings = new JMenuItem(
1439 MessageManager.getString("action.feature_settings"));
1440 openFeatureSettings.addActionListener(new ActionListener()
1443 public void actionPerformed(ActionEvent e)
1445 featureSettings_actionPerformed(e);
1448 JMenuItem fetchSequence = new JMenuItem(
1449 MessageManager.getString("label.fetch_sequences"));
1450 fetchSequence.addActionListener(new ActionListener()
1453 public void actionPerformed(ActionEvent e)
1455 fetchSequence_actionPerformed(e);
1459 JMenuItem associatedData = new JMenuItem(
1460 MessageManager.getString("label.load_features_annotations"));
1461 associatedData.addActionListener(new ActionListener()
1464 public void actionPerformed(ActionEvent e)
1466 associatedData_actionPerformed(e);
1469 autoCalculate.setText(MessageManager
1470 .getString("label.autocalculate_consensus"));
1471 autoCalculate.setState(jalview.bin.Cache.getDefault(
1472 "AUTO_CALC_CONSENSUS", true));
1473 autoCalculate.addActionListener(new ActionListener()
1476 public void actionPerformed(ActionEvent e)
1478 autoCalculate_actionPerformed(e);
1481 sortByTree.setText(MessageManager
1482 .getString("label.sort_alignment_new_tree"));
1484 .setToolTipText("<html>"
1486 .getString("label.enable_automatically_sort_alignment_when_open_new_tree"));
1488 .setState(jalview.bin.Cache.getDefault("SORT_BY_TREE", false));
1489 sortByTree.addActionListener(new ActionListener()
1492 public void actionPerformed(ActionEvent e)
1494 sortByTreeOption_actionPerformed(e);
1498 listenToViewSelections.setText(MessageManager
1499 .getString("label.listen_for_selections"));
1500 listenToViewSelections
1501 .setToolTipText("<html>"
1503 .getString("label.selections_mirror_selections_made_same_sequences_other_views"));
1504 listenToViewSelections.setState(false);
1505 listenToViewSelections.addActionListener(new ActionListener()
1508 public void actionPerformed(ActionEvent e)
1510 listenToViewSelections_actionPerformed(e);
1514 JMenu addSequenceMenu = new JMenu(
1515 MessageManager.getString("label.add_sequences"));
1516 JMenuItem addFromFile = new JMenuItem(
1517 MessageManager.getString("label.from_file"));
1518 addFromFile.addActionListener(new ActionListener()
1521 public void actionPerformed(ActionEvent e)
1523 addFromFile_actionPerformed(e);
1526 JMenuItem addFromText = new JMenuItem(
1527 MessageManager.getString("label.from_textbox"));
1528 addFromText.addActionListener(new ActionListener()
1531 public void actionPerformed(ActionEvent e)
1533 addFromText_actionPerformed(e);
1536 JMenuItem addFromURL = new JMenuItem(
1537 MessageManager.getString("label.from_url"));
1538 addFromURL.addActionListener(new ActionListener()
1541 public void actionPerformed(ActionEvent e)
1543 addFromURL_actionPerformed(e);
1546 JMenuItem exportFeatures = new JMenuItem(
1547 MessageManager.getString("label.export_features"));
1548 exportFeatures.addActionListener(new ActionListener()
1551 public void actionPerformed(ActionEvent e)
1553 exportFeatures_actionPerformed(e);
1556 JMenuItem exportAnnotations = new JMenuItem(
1557 MessageManager.getString("label.export_annotations"));
1558 exportAnnotations.addActionListener(new ActionListener()
1561 public void actionPerformed(ActionEvent e)
1563 exportAnnotations_actionPerformed(e);
1566 statusPanel.setLayout(new GridLayout());
1567 JMenuItem showAllSeqs = new JMenuItem(
1568 MessageManager.getString("label.all_sequences"));
1569 showAllSeqs.setToolTipText(MessageManager
1570 .getString("label.toggle_sequence_visibility"));
1571 showAllSeqs.addActionListener(new ActionListener()
1574 public void actionPerformed(ActionEvent e)
1576 showAllSeqs_actionPerformed(e);
1579 JMenuItem showAllColumns = new JMenuItem(
1580 MessageManager.getString("label.all_columns"));
1581 showAllColumns.setToolTipText(MessageManager
1582 .getString("label.toggle_columns_visibility"));
1583 showAllColumns.addActionListener(new ActionListener()
1586 public void actionPerformed(ActionEvent e)
1588 showAllColumns_actionPerformed(e);
1591 JMenu hideMenu = new JMenu(MessageManager.getString("action.hide"));
1592 JMenuItem hideSelSequences = new JMenuItem(
1593 MessageManager.getString("label.selected_sequences"));
1594 hideSelSequences.setToolTipText(MessageManager
1595 .getString("label.toggle_sequence_visibility"));
1596 hideSelSequences.addActionListener(new ActionListener()
1599 public void actionPerformed(ActionEvent e)
1601 hideSelSequences_actionPerformed(e);
1604 JMenuItem hideSelColumns = new JMenuItem(
1605 MessageManager.getString("label.selected_columns"));
1606 hideSelColumns.setToolTipText(MessageManager
1607 .getString("label.toggle_columns_visibility"));
1608 hideSelColumns.addActionListener(new ActionListener()
1611 public void actionPerformed(ActionEvent e)
1613 hideSelColumns_actionPerformed(e);
1616 JMenuItem hideAllSelection = new JMenuItem(
1617 MessageManager.getString("label.selected_region"));
1618 hideAllSelection.addActionListener(new ActionListener()
1621 public void actionPerformed(ActionEvent e)
1623 hideAllSelection_actionPerformed(e);
1626 // TODO: should be hidden if no selection exists.
1627 JMenuItem hideAllButSelection = new JMenuItem(
1628 MessageManager.getString("label.all_but_selected_region"));
1629 hideAllButSelection.addActionListener(new ActionListener()
1632 public void actionPerformed(ActionEvent e)
1634 hideAllButSelection_actionPerformed(e);
1637 JMenuItem showAllhidden = new JMenuItem(
1638 MessageManager.getString("label.all_sequences_columns"));
1639 showAllhidden.setToolTipText(MessageManager
1640 .getString("label.toggles_visibility_hidden_selected_regions"));
1641 showAllhidden.addActionListener(new ActionListener()
1644 public void actionPerformed(ActionEvent e)
1646 showAllhidden_actionPerformed(e);
1649 hiddenMarkers.setText(MessageManager
1650 .getString("action.show_hidden_markers"));
1651 hiddenMarkers.addActionListener(new ActionListener()
1654 public void actionPerformed(ActionEvent e)
1656 hiddenMarkers_actionPerformed(e);
1660 JMenuItem invertColSel = new JMenuItem(
1661 MessageManager.getString("action.invert_column_selection"));
1662 keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_I, Toolkit
1663 .getDefaultToolkit().getMenuShortcutKeyMask()
1664 | KeyEvent.ALT_MASK, false);
1665 al = new ActionListener()
1668 public void actionPerformed(ActionEvent e)
1670 invertColSel_actionPerformed(e);
1673 addMenuActionAndAccelerator(keyStroke, invertColSel, al);
1675 showComplementMenuItem.setVisible(false);
1676 showComplementMenuItem.addActionListener(new ActionListener()
1679 public void actionPerformed(ActionEvent e)
1681 showComplement_actionPerformed(showComplementMenuItem.getState());
1685 tabbedPane.addChangeListener(new javax.swing.event.ChangeListener()
1688 public void stateChanged(ChangeEvent evt)
1690 JTabbedPane pane = (JTabbedPane) evt.getSource();
1691 int sel = pane.getSelectedIndex();
1692 tabSelectionChanged(sel);
1695 tabbedPane.addMouseListener(new MouseAdapter()
1698 public void mousePressed(MouseEvent e)
1700 if (e.isPopupTrigger()) // Mac
1702 tabbedPane_mousePressed(e);
1707 public void mouseReleased(MouseEvent e)
1709 if (e.isPopupTrigger()) // Windows
1711 tabbedPane_mousePressed(e);
1715 tabbedPane.addFocusListener(new FocusAdapter()
1718 public void focusGained(FocusEvent e)
1720 tabbedPane_focusGained(e);
1724 JMenuItem save = new JMenuItem(MessageManager.getString("action.save"));
1725 keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_S, Toolkit
1726 .getDefaultToolkit().getMenuShortcutKeyMask(), false);
1727 al = new ActionListener()
1730 public void actionPerformed(ActionEvent e)
1732 save_actionPerformed(e);
1735 addMenuActionAndAccelerator(keyStroke, save, al);
1737 reload.setEnabled(false);
1738 reload.setText(MessageManager.getString("action.reload"));
1739 reload.addActionListener(new ActionListener()
1742 public void actionPerformed(ActionEvent e)
1744 reload_actionPerformed(e);
1748 JMenuItem newView = new JMenuItem(
1749 MessageManager.getString("action.new_view"));
1750 keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_T, Toolkit
1751 .getDefaultToolkit().getMenuShortcutKeyMask(), false);
1752 al = new ActionListener()
1755 public void actionPerformed(ActionEvent e)
1757 newView_actionPerformed(e);
1760 addMenuActionAndAccelerator(keyStroke, newView, al);
1762 tabbedPane.setToolTipText("<html><i>"
1763 + MessageManager.getString("label.rename_tab_eXpand_reGroup")
1766 formatMenu.setText(MessageManager.getString("action.format"));
1767 JMenu selectMenu = new JMenu(MessageManager.getString("action.select"));
1768 idRightAlign.setText(MessageManager
1769 .getString("label.right_align_sequence_id"));
1770 idRightAlign.addActionListener(new ActionListener()
1773 public void actionPerformed(ActionEvent e)
1775 idRightAlign_actionPerformed(e);
1779 gatherViews.setEnabled(false);
1780 gatherViews.setText(MessageManager.getString("action.gather_views"));
1781 keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_G, 0, false);
1782 al = new ActionListener()
1785 public void actionPerformed(ActionEvent e)
1787 gatherViews_actionPerformed(e);
1790 addMenuActionAndAccelerator(keyStroke, gatherViews, al);
1792 expandViews.setEnabled(false);
1793 expandViews.setText(MessageManager.getString("action.expand_views"));
1794 keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_X, 0, false);
1795 al = new ActionListener()
1798 public void actionPerformed(ActionEvent e)
1800 expandViews_actionPerformed(e);
1803 addMenuActionAndAccelerator(keyStroke, expandViews, al);
1805 JMenuItem pageSetup = new JMenuItem(
1806 MessageManager.getString("action.page_setup"));
1807 pageSetup.addActionListener(new ActionListener()
1810 public void actionPerformed(ActionEvent e)
1812 pageSetup_actionPerformed(e);
1815 JMenuItem alignmentProperties = new JMenuItem(
1816 MessageManager.getString("label.alignment_props"));
1817 alignmentProperties.addActionListener(new ActionListener()
1820 public void actionPerformed(ActionEvent actionEvent)
1822 alignmentProperties();
1825 JMenuItem selectHighlighted = new JMenuItem(
1826 MessageManager.getString("action.select_highlighted_columns"));
1827 selectHighlighted.setToolTipText(MessageManager
1828 .getString("tooltip.select_highlighted_columns"));
1829 al = new ActionListener()
1832 public void actionPerformed(ActionEvent actionEvent)
1834 selectHighlightedColumns_actionPerformed(actionEvent);
1837 selectHighlighted.addActionListener(al);
1838 JMenu tooltipSettingsMenu = new JMenu(
1839 MessageManager.getString("label.sequence_id_tooltip"));
1840 JMenu autoAnnMenu = new JMenu(
1841 MessageManager.getString("label.autocalculated_annotation"));
1843 JMenu exportImageMenu = new JMenu(
1844 MessageManager.getString("label.export_image"));
1845 JMenu fileMenu = new JMenu(MessageManager.getString("action.file"));
1846 alignFrameMenuBar.add(fileMenu);
1847 alignFrameMenuBar.add(editMenu);
1848 alignFrameMenuBar.add(selectMenu);
1849 alignFrameMenuBar.add(viewMenu);
1850 alignFrameMenuBar.add(annotationsMenu);
1851 alignFrameMenuBar.add(formatMenu);
1852 alignFrameMenuBar.add(colourMenu);
1853 alignFrameMenuBar.add(calculateMenu);
1854 alignFrameMenuBar.add(webService);
1856 fileMenu.add(fetchSequence);
1857 fileMenu.add(addSequenceMenu);
1858 fileMenu.add(reload);
1859 fileMenu.addSeparator();
1860 fileMenu.add(vamsasStore);
1862 fileMenu.add(saveAs);
1863 fileMenu.add(outputTextboxMenu);
1864 fileMenu.add(pageSetup);
1865 fileMenu.add(printMenuItem);
1866 fileMenu.addSeparator();
1867 fileMenu.add(exportImageMenu);
1868 fileMenu.add(exportFeatures);
1869 fileMenu.add(exportAnnotations);
1870 fileMenu.add(loadTreeMenuItem);
1871 fileMenu.add(associatedData);
1872 fileMenu.addSeparator();
1873 fileMenu.add(closeMenuItem);
1875 pasteMenu.add(pasteNew);
1876 pasteMenu.add(pasteThis);
1877 editMenu.add(undoMenuItem);
1878 editMenu.add(redoMenuItem);
1881 editMenu.add(pasteMenu);
1882 editMenu.add(delete);
1883 editMenu.addSeparator();
1884 editMenu.add(remove2LeftMenuItem);
1885 editMenu.add(remove2RightMenuItem);
1886 editMenu.add(removeGappedColumnMenuItem);
1887 editMenu.add(removeAllGapsMenuItem);
1888 editMenu.add(removeRedundancyMenuItem);
1889 editMenu.addSeparator();
1890 // dont add these yet in the CVS build - they cannot be undone!
1891 // Excluded from Jalview 2.5 release - undo needs to be implemented.
1892 // editMenu.add(justifyLeftMenuItem);
1893 // editMenu.add(justifyRightMenuItem);
1894 // editMenu.addSeparator();
1895 editMenu.add(padGapsMenuitem);
1897 showMenu.add(showAllColumns);
1898 showMenu.add(showAllSeqs);
1899 showMenu.add(showAllhidden);
1900 hideMenu.add(hideSelColumns);
1901 hideMenu.add(hideSelSequences);
1902 hideMenu.add(hideAllSelection);
1903 hideMenu.add(hideAllButSelection);
1904 viewMenu.add(newView);
1905 viewMenu.add(expandViews);
1906 viewMenu.add(gatherViews);
1907 viewMenu.addSeparator();
1908 viewMenu.add(showMenu);
1909 viewMenu.add(hideMenu);
1910 viewMenu.add(showComplementMenuItem);
1911 viewMenu.addSeparator();
1912 viewMenu.add(followHighlightMenuItem);
1913 viewMenu.addSeparator();
1914 viewMenu.add(showSeqFeatures);
1915 // viewMenu.add(showSeqFeaturesHeight);
1916 viewMenu.add(openFeatureSettings);
1917 tooltipSettingsMenu.add(showDbRefsMenuitem);
1918 tooltipSettingsMenu.add(showNpFeatsMenuitem);
1919 viewMenu.add(tooltipSettingsMenu);
1920 viewMenu.addSeparator();
1921 viewMenu.add(alignmentProperties);
1922 viewMenu.addSeparator();
1923 viewMenu.add(overviewMenuItem);
1925 annotationsMenu.add(annotationPanelMenuItem);
1926 annotationsMenu.addSeparator();
1927 annotationsMenu.add(showAllAlAnnotations);
1928 annotationsMenu.add(hideAllAlAnnotations);
1929 annotationsMenu.addSeparator();
1930 annotationsMenu.add(showAllSeqAnnotations);
1931 annotationsMenu.add(hideAllSeqAnnotations);
1932 annotationsMenu.add(sortAnnBySequence);
1933 annotationsMenu.add(sortAnnByLabel);
1934 annotationsMenu.addSeparator();
1935 autoAnnMenu.add(showAutoFirst);
1936 autoAnnMenu.add(showAutoLast);
1937 autoAnnMenu.addSeparator();
1938 autoAnnMenu.add(applyAutoAnnotationSettings);
1939 autoAnnMenu.add(showConsensusHistogram);
1940 autoAnnMenu.add(showSequenceLogo);
1941 autoAnnMenu.add(normaliseSequenceLogo);
1942 autoAnnMenu.addSeparator();
1943 autoAnnMenu.add(showGroupConservation);
1944 autoAnnMenu.add(showGroupConsensus);
1945 annotationsMenu.add(autoAnnMenu);
1948 sort.add(sortIDMenuItem);
1949 sort.add(sortLengthMenuItem);
1950 sort.add(sortGroupMenuItem);
1951 sort.add(sortPairwiseMenuItem);
1952 sort.add(sortByTreeMenu);
1953 calculateMenu.add(sort);
1954 calculateMenu.add(calculateTree);
1955 calculateMenu.addSeparator();
1956 calculateMenu.add(pairwiseAlignmentMenuItem);
1957 calculateMenu.add(PCAMenuItem);
1958 calculateMenu.addSeparator();
1959 calculateMenu.add(showTranslation);
1960 calculateMenu.add(showReverse);
1961 calculateMenu.add(showReverseComplement);
1962 calculateMenu.add(showProducts);
1963 calculateMenu.add(autoCalculate);
1964 calculateMenu.add(sortByTree);
1965 calculateMenu.addSeparator();
1966 calculateMenu.add(expandAlignment);
1967 calculateMenu.add(extractScores);
1968 calculateMenu.addSeparator();
1969 calculateMenu.add(runGroovy);
1971 webServiceNoServices = new JMenuItem(
1972 MessageManager.getString("label.no_services"));
1973 webService.add(webServiceNoServices);
1974 exportImageMenu.add(htmlMenuItem);
1975 exportImageMenu.add(epsFile);
1976 exportImageMenu.add(createPNG);
1977 exportImageMenu.add(createBioJS);
1978 exportImageMenu.add(createSVG);
1979 addSequenceMenu.add(addFromFile);
1980 addSequenceMenu.add(addFromText);
1981 addSequenceMenu.add(addFromURL);
1982 this.getContentPane().add(statusPanel, java.awt.BorderLayout.SOUTH);
1983 statusPanel.add(statusBar, null);
1984 this.getContentPane().add(tabbedPane, java.awt.BorderLayout.CENTER);
1986 formatMenu.add(font);
1987 formatMenu.addSeparator();
1988 formatMenu.add(wrapMenuItem);
1989 formatMenu.add(scaleAbove);
1990 formatMenu.add(scaleLeft);
1991 formatMenu.add(scaleRight);
1992 formatMenu.add(seqLimits);
1993 formatMenu.add(idRightAlign);
1994 formatMenu.add(hiddenMarkers);
1995 formatMenu.add(viewBoxesMenuItem);
1996 formatMenu.add(viewTextMenuItem);
1997 formatMenu.add(colourTextMenuItem);
1998 formatMenu.add(renderGapsMenuItem);
1999 formatMenu.add(centreColumnLabelsMenuItem);
2000 formatMenu.add(showNonconservedMenuItem);
2001 selectMenu.add(findMenuItem);
2002 selectMenu.addSeparator();
2003 selectMenu.add(selectAllSequenceMenuItem);
2004 selectMenu.add(deselectAllSequenceMenuItem);
2005 selectMenu.add(invertSequenceMenuItem);
2006 selectMenu.add(invertColSel);
2007 selectMenu.add(createGroup);
2008 selectMenu.add(unGroup);
2009 selectMenu.add(grpsFromSelection);
2010 selectMenu.add(deleteGroups);
2011 selectMenu.add(annotationColumn);
2012 selectMenu.add(selectHighlighted);
2013 // TODO - determine if the listenToViewSelections button is needed : see bug
2015 // selectMenu.addSeparator();
2016 // selectMenu.add(listenToViewSelections);
2020 * Rebuilds the Colour menu, including any user-defined colours which have
2021 * been loaded either on startup or during the session
2023 public void buildColourMenu()
2025 colourMenu.removeAll();
2026 colours = new ButtonGroup();
2028 colourMenu.add(applyToAllGroups);
2029 colourMenu.add(textColour);
2030 colourMenu.addSeparator();
2031 colourMenu.add(noColourmenuItem);
2032 colourMenu.add(clustalColour);
2033 colourMenu.add(BLOSUM62Colour);
2034 colourMenu.add(PIDColour);
2035 colourMenu.add(zappoColour);
2036 colourMenu.add(taylorColour);
2037 colourMenu.add(hydrophobicityColour);
2038 colourMenu.add(helixColour);
2039 colourMenu.add(strandColour);
2040 colourMenu.add(turnColour);
2041 colourMenu.add(buriedColour);
2042 colourMenu.add(nucleotideColour);
2043 colourMenu.add(purinePyrimidineColour);
2044 // colourMenu.add(RNAInteractionColour);
2045 // colourMenu.add(covariationColour);
2046 colourMenu.add(tcoffeeColour);
2049 * add any user-defined colours
2051 Map<String, UserColourScheme> userColourSchemes = UserDefinedColours
2052 .getUserColourSchemes();
2053 if (userColourSchemes != null)
2055 for (String userColour : userColourSchemes.keySet())
2057 final JRadioButtonMenuItem radioItem = new JRadioButtonMenuItem(
2059 radioItem.setName(USER_DEFINED_COLOUR_SCHEME);
2060 radioItem.addMouseListener(new MouseAdapter()
2063 public void mousePressed(MouseEvent evt)
2065 if (evt.isPopupTrigger()) // Mac
2072 public void mouseReleased(MouseEvent evt)
2074 if (evt.isPopupTrigger()) // Windows
2082 radioItem.removeActionListener(radioItem.getActionListeners()[0]);
2084 int option = JvOptionPane.showInternalConfirmDialog(
2085 Desktop.desktop, MessageManager
2086 .getString("label.remove_from_default_list"),
2088 .getString("label.remove_user_defined_colour"),
2089 JvOptionPane.YES_NO_OPTION);
2090 if (option == JvOptionPane.YES_OPTION)
2092 UserDefinedColours.removeColourFromDefaults(radioItem
2094 colourMenu.remove(radioItem);
2098 radioItem.addActionListener(new ActionListener()
2101 public void actionPerformed(ActionEvent evt)
2103 userDefinedColour_actionPerformed(evt);
2109 radioItem.addActionListener(new ActionListener()
2112 public void actionPerformed(ActionEvent evt)
2114 userDefinedColour_actionPerformed(evt);
2117 colourMenu.add(radioItem);
2118 colours.add(radioItem);
2122 colourMenu.add(userDefinedColour);
2123 colourMenu.addSeparator();
2124 colourMenu.add(conservationMenuItem);
2125 colourMenu.add(modifyConservation);
2126 colourMenu.add(abovePIDThreshold);
2127 colourMenu.add(modifyPID);
2128 colourMenu.add(annotationColour);
2129 colourMenu.add(rnahelicesColour);
2132 * add colours to a ButtonGroup to make their
2133 * selection mutually exclusive
2135 colours.add(noColourmenuItem);
2136 colours.add(clustalColour);
2137 colours.add(zappoColour);
2138 colours.add(taylorColour);
2139 colours.add(hydrophobicityColour);
2140 colours.add(helixColour);
2141 colours.add(strandColour);
2142 colours.add(turnColour);
2143 colours.add(buriedColour);
2144 colours.add(userDefinedColour);
2145 colours.add(PIDColour);
2146 colours.add(BLOSUM62Colour);
2147 colours.add(nucleotideColour);
2148 colours.add(purinePyrimidineColour);
2149 // colours.add(covariationColour);
2150 colours.add(tcoffeeColour);
2151 colours.add(RNAInteractionColour);
2152 setColourSelected(Cache.getDefault(Preferences.DEFAULT_COLOUR,
2153 ResidueColourScheme.NONE));
2158 * Constructs the entries on the Colour menu (but does not add them to the
2161 protected void initColourMenu()
2163 applyToAllGroups = new JCheckBoxMenuItem(
2164 MessageManager.getString("label.apply_colour_to_all_groups"));
2165 applyToAllGroups.addActionListener(new ActionListener()
2168 public void actionPerformed(ActionEvent e)
2170 applyToAllGroups_actionPerformed();
2174 textColour = new JRadioButtonMenuItem(
2175 MessageManager.getString("action.set_text_colour"));
2176 textColour.addActionListener(new ActionListener()
2179 public void actionPerformed(ActionEvent e)
2181 textColour_actionPerformed();
2184 clustalColour = new JRadioButtonMenuItem(
2185 MessageManager.getString("label.clustalx"));
2186 clustalColour.addActionListener(new ActionListener()
2189 public void actionPerformed(ActionEvent e)
2191 clustalColour_actionPerformed();
2194 zappoColour = new JRadioButtonMenuItem(
2195 MessageManager.getString("label.zappo"));
2196 zappoColour.addActionListener(new ActionListener()
2199 public void actionPerformed(ActionEvent e)
2201 zappoColour_actionPerformed();
2204 taylorColour = new JRadioButtonMenuItem(
2205 MessageManager.getString("label.taylor"));
2206 taylorColour.addActionListener(new ActionListener()
2209 public void actionPerformed(ActionEvent e)
2211 taylorColour_actionPerformed();
2214 hydrophobicityColour = new JRadioButtonMenuItem(
2216 .getString("label.hydrophobicity"));
2217 hydrophobicityColour.addActionListener(new ActionListener()
2220 public void actionPerformed(ActionEvent e)
2222 hydrophobicityColour_actionPerformed();
2225 helixColour = new JRadioButtonMenuItem(
2226 MessageManager.getString("label.helix_propensity"));
2227 helixColour.addActionListener(new ActionListener()
2230 public void actionPerformed(ActionEvent e)
2232 helixColour_actionPerformed();
2235 strandColour = new JRadioButtonMenuItem(
2237 .getString("label.strand_propensity"));
2238 strandColour.addActionListener(new ActionListener()
2241 public void actionPerformed(ActionEvent e)
2243 strandColour_actionPerformed();
2246 turnColour = new JRadioButtonMenuItem(
2247 MessageManager.getString("label.turn_propensity"));
2248 turnColour.addActionListener(new ActionListener()
2251 public void actionPerformed(ActionEvent e)
2253 turnColour_actionPerformed();
2256 buriedColour = new JRadioButtonMenuItem(
2257 MessageManager.getString("label.buried_index"));
2258 buriedColour.addActionListener(new ActionListener()
2261 public void actionPerformed(ActionEvent e)
2263 buriedColour_actionPerformed();
2266 userDefinedColour = new JRadioButtonMenuItem(
2268 .getString("action.user_defined"));
2269 userDefinedColour.addActionListener(new ActionListener()
2272 public void actionPerformed(ActionEvent e)
2274 userDefinedColour_actionPerformed(e);
2277 PIDColour = new JRadioButtonMenuItem(
2278 MessageManager.getString("label.percentage_identity"));
2279 PIDColour.addActionListener(new ActionListener()
2282 public void actionPerformed(ActionEvent e)
2284 PIDColour_actionPerformed();
2287 BLOSUM62Colour = new JRadioButtonMenuItem(
2288 MessageManager.getString("label.blosum62_score"));
2289 BLOSUM62Colour.addActionListener(new ActionListener()
2292 public void actionPerformed(ActionEvent e)
2294 BLOSUM62Colour_actionPerformed();
2297 nucleotideColour = new JRadioButtonMenuItem(
2298 MessageManager.getString("label.nucleotide"));
2299 nucleotideColour.addActionListener(new ActionListener()
2302 public void actionPerformed(ActionEvent e)
2304 nucleotideColour_actionPerformed();
2307 purinePyrimidineColour = new JRadioButtonMenuItem(
2308 MessageManager.getString("label.purine_pyrimidine"));
2309 purinePyrimidineColour.addActionListener(new ActionListener()
2312 public void actionPerformed(ActionEvent e)
2314 purinePyrimidineColour_actionPerformed();
2318 tcoffeeColour = new JRadioButtonMenuItem(
2319 MessageManager.getString("label.tcoffee_scores"));
2320 tcoffeeColour.setEnabled(false);
2321 tcoffeeColour.addActionListener(new ActionListener()
2325 public void actionPerformed(ActionEvent e)
2327 tcoffeeColorScheme_actionPerformed();
2331 RNAInteractionColour = new JRadioButtonMenuItem("RNA Interaction type");
2332 RNAInteractionColour.addActionListener(new ActionListener()
2335 public void actionPerformed(ActionEvent e)
2337 RNAInteractionColour_actionPerformed();
2341 * covariationColour = new JRadioButtonMenuItem("Covariation");
2342 * covariationColour.addActionListener(new ActionListener() { public void
2343 * actionPerformed(ActionEvent e) { covariationColour_actionPerformed(); }
2347 conservationMenuItem = new JCheckBoxMenuItem(
2348 MessageManager.getString("action.by_conservation"));
2349 conservationMenuItem.addActionListener(new ActionListener()
2352 public void actionPerformed(ActionEvent e)
2354 conservationMenuItem_actionPerformed();
2357 noColourmenuItem = new JRadioButtonMenuItem(
2358 MessageManager.getString("label.none"));
2359 noColourmenuItem.addActionListener(new ActionListener()
2362 public void actionPerformed(ActionEvent e)
2364 noColourmenuItem_actionPerformed();
2368 abovePIDThreshold = new JCheckBoxMenuItem(
2369 MessageManager.getString("label.above_identity_threshold"));
2370 abovePIDThreshold.addActionListener(new ActionListener()
2373 public void actionPerformed(ActionEvent e)
2375 abovePIDThreshold_actionPerformed();
2378 modifyPID = new JMenuItem(
2379 MessageManager.getString("label.modify_identity_threshold"));
2380 modifyPID.addActionListener(new ActionListener()
2383 public void actionPerformed(ActionEvent e)
2385 modifyPID_actionPerformed();
2388 modifyConservation = new JMenuItem(
2390 .getString("label.modify_conservation_threshold"));
2391 modifyConservation.addActionListener(new ActionListener()
2394 public void actionPerformed(ActionEvent e)
2396 modifyConservation_actionPerformed();
2400 annotationColour = new JMenuItem(
2401 MessageManager.getString("action.by_annotation"));
2402 annotationColour.addActionListener(new ActionListener()
2405 public void actionPerformed(ActionEvent e)
2407 annotationColour_actionPerformed();
2411 rnahelicesColour = new JMenuItem(
2412 MessageManager.getString("action.by_rna_helixes"));
2413 rnahelicesColour.addActionListener(new ActionListener()
2416 public void actionPerformed(ActionEvent e)
2418 rnahelicesColour_actionPerformed();
2423 protected void selectHighlightedColumns_actionPerformed(
2424 ActionEvent actionEvent)
2426 // TODO Auto-generated method stub
2431 * Generate the reverse sequence (or reverse complement if the flag is true)
2432 * and add it to the alignment
2436 protected void showReverse_actionPerformed(boolean complement)
2441 * Try to run script in a Groovy console, having first ensured that this
2442 * alignframe is set as currentAlignFrame in Desktop
2444 protected void runGroovy_actionPerformed()
2450 * Adds the given action listener and key accelerator to the given menu item.
2451 * Also saves in a lookup table to support lookup of action by key stroke.
2455 * @param actionListener
2457 protected void addMenuActionAndAccelerator(KeyStroke keyStroke,
2458 JMenuItem menuItem, ActionListener actionListener)
2460 menuItem.setAccelerator(keyStroke);
2461 accelerators.put(keyStroke, menuItem);
2462 menuItem.addActionListener(actionListener);
2466 * Action on clicking sort annotations by type.
2470 protected void sortAnnotations_actionPerformed()
2475 * Action on clicking Show all annotations.
2477 * @param forSequences
2478 * update sequence-related annotations
2479 * @param forAlignment
2480 * update non-sequence-related annotations
2482 protected void showAllAnnotations_actionPerformed(boolean forSequences,
2483 boolean forAlignment)
2485 setAnnotationsVisibility(true, forSequences, forAlignment);
2489 * Action on clicking Hide all annotations.
2491 * @param forSequences
2492 * update sequence-related annotations
2493 * @param forAlignment
2494 * update non-sequence-related annotations
2496 protected void hideAllAnnotations_actionPerformed(boolean forSequences,
2497 boolean forAlignment)
2499 setAnnotationsVisibility(false, forSequences, forAlignment);
2503 * Set the visibility of annotations to true or false. Can act on
2504 * sequence-related annotations, or alignment-related, or both.
2507 * @param forSequences
2508 * update sequence-related annotations
2509 * @param forAlignment
2510 * update non-sequence-related annotations
2512 protected void setAnnotationsVisibility(boolean visible,
2513 boolean forSequences, boolean forAlignment)
2518 protected void normaliseSequenceLogo_actionPerformed(ActionEvent e)
2520 // TODO Auto-generated method stub
2524 protected void listenToViewSelections_actionPerformed(ActionEvent e)
2526 // TODO Auto-generated method stub
2530 protected void showAllhidden_actionPerformed(ActionEvent e)
2532 // TODO Auto-generated method stub
2536 protected void hideAllButSelection_actionPerformed(ActionEvent e)
2538 // TODO Auto-generated method stub
2542 protected void hideAllSelection_actionPerformed(ActionEvent e)
2544 // TODO Auto-generated method stub
2548 protected void applyAutoAnnotationSettings_actionPerformed(ActionEvent e)
2550 // TODO Auto-generated method stub
2554 protected void showConsensusHistogram_actionPerformed(ActionEvent e)
2556 // TODO Auto-generated method stub
2560 protected void showSequenceLogo_actionPerformed(ActionEvent e)
2562 // TODO Auto-generated method stub
2566 protected void makeGrpsFromSelection_actionPerformed(ActionEvent e)
2568 // TODO Auto-generated method stub
2572 protected void showGroupConsensus_actionPerformed(ActionEvent e)
2574 // TODO Auto-generated method stub
2578 protected void showGroupConservation_actionPerformed(ActionEvent e)
2580 // TODO Auto-generated method stub
2584 protected void showUnconservedMenuItem_actionPerformed(ActionEvent e)
2586 // TODO Auto-generated method stub
2590 protected void justifyRightMenuItem_actionPerformed(ActionEvent e)
2592 // TODO Auto-generated method stub
2596 protected void justifyLeftMenuItem_actionPerformed(ActionEvent e)
2598 // TODO Auto-generated method stub
2602 protected void followHighlight_actionPerformed()
2604 // TODO Auto-generated method stub
2608 protected void showNpFeats_actionPerformed(ActionEvent e)
2610 // TODO Auto-generated method stub
2614 protected void showDbRefs_actionPerformed(ActionEvent e)
2616 // TODO Auto-generated method stub
2620 protected void centreColumnLabels_actionPerformed(ActionEvent e)
2624 protected void buildSortByAnnotationScoresMenu()
2628 protected void extractScores_actionPerformed(ActionEvent e)
2632 protected void outputText_actionPerformed(ActionEvent e)
2636 public void addFromFile_actionPerformed(ActionEvent e)
2641 public void addFromText_actionPerformed(ActionEvent e)
2646 public void addFromURL_actionPerformed(ActionEvent e)
2651 public void exportFeatures_actionPerformed(ActionEvent e)
2656 public void exportAnnotations_actionPerformed(ActionEvent e)
2661 protected void htmlMenuItem_actionPerformed(ActionEvent e)
2665 protected void bioJSMenuItem_actionPerformed(ActionEvent e)
2670 protected void closeMenuItem_actionPerformed(boolean b)
2674 protected void redoMenuItem_actionPerformed(ActionEvent e)
2678 protected void undoMenuItem_actionPerformed(ActionEvent e)
2682 protected void selectAllSequenceMenuItem_actionPerformed(ActionEvent e)
2686 protected void deselectAllSequenceMenuItem_actionPerformed(ActionEvent e)
2690 protected void invertSequenceMenuItem_actionPerformed(ActionEvent e)
2694 protected void remove2LeftMenuItem_actionPerformed(ActionEvent e)
2698 protected void remove2RightMenuItem_actionPerformed(ActionEvent e)
2702 protected void removeGappedColumnMenuItem_actionPerformed(ActionEvent e)
2706 protected void removeAllGapsMenuItem_actionPerformed(ActionEvent e)
2710 protected void wrapMenuItem_actionPerformed(ActionEvent e)
2714 protected void viewBoxesMenuItem_actionPerformed(ActionEvent e)
2718 protected void viewTextMenuItem_actionPerformed(ActionEvent e)
2722 protected void colourTextMenuItem_actionPerformed(ActionEvent e)
2726 protected void annotationPanelMenuItem_actionPerformed(ActionEvent e)
2730 protected void overviewMenuItem_actionPerformed(ActionEvent e)
2734 protected void sortPairwiseMenuItem_actionPerformed(ActionEvent e)
2738 protected void sortIDMenuItem_actionPerformed(ActionEvent e)
2742 protected void sortLengthMenuItem_actionPerformed(ActionEvent e)
2746 protected void sortGroupMenuItem_actionPerformed(ActionEvent e)
2750 protected void removeRedundancyMenuItem_actionPerformed(ActionEvent e)
2754 protected void pairwiseAlignmentMenuItem_actionPerformed(ActionEvent e)
2758 protected void PCAMenuItem_actionPerformed(ActionEvent e)
2762 protected void averageDistanceTreeMenuItem_actionPerformed(ActionEvent e)
2766 protected void neighbourTreeMenuItem_actionPerformed(ActionEvent e)
2770 protected void njTreeBlosumMenuItem_actionPerformed(ActionEvent e)
2774 protected void avTreeBlosumMenuItem_actionPerformed(ActionEvent e)
2778 protected void clustalColour_actionPerformed()
2782 protected void zappoColour_actionPerformed()
2786 protected void taylorColour_actionPerformed()
2790 protected void hydrophobicityColour_actionPerformed()
2794 protected void helixColour_actionPerformed()
2798 protected void strandColour_actionPerformed()
2802 protected void turnColour_actionPerformed()
2806 protected void buriedColour_actionPerformed()
2810 protected void userDefinedColour_actionPerformed(ActionEvent e)
2814 protected void PIDColour_actionPerformed()
2818 protected void BLOSUM62Colour_actionPerformed()
2822 protected void purinePyrimidineColour_actionPerformed()
2826 protected void RNAInteractionColour_actionPerformed()
2831 * protected void covariationColour_actionPerformed() { }
2834 protected void noColourmenuItem_actionPerformed()
2838 protected void conservationMenuItem_actionPerformed()
2842 protected void printMenuItem_actionPerformed(ActionEvent e)
2846 protected void renderGapsMenuItem_actionPerformed(ActionEvent e)
2850 protected void findMenuItem_actionPerformed(ActionEvent e)
2854 protected void abovePIDThreshold_actionPerformed()
2858 public void showSeqFeatures_actionPerformed(ActionEvent actionEvent)
2862 protected void nucleotideColour_actionPerformed()
2866 protected void deleteGroups_actionPerformed(ActionEvent e)
2870 protected void createGroup_actionPerformed(ActionEvent e)
2874 protected void unGroup_actionPerformed(ActionEvent e)
2878 protected void copy_actionPerformed(ActionEvent e)
2882 protected void cut_actionPerformed(ActionEvent e)
2886 protected void delete_actionPerformed(ActionEvent e)
2890 protected void pasteNew_actionPerformed(ActionEvent e)
2894 protected void pasteThis_actionPerformed(ActionEvent e)
2898 protected void applyToAllGroups_actionPerformed()
2902 public void createPNG(java.io.File f)
2906 protected void font_actionPerformed(ActionEvent e)
2910 protected void seqLimit_actionPerformed(ActionEvent e)
2914 public void seqDBRef_actionPerformed(ActionEvent e)
2919 public void createEPS(java.io.File f)
2923 public void createSVG(java.io.File f)
2928 protected void loadTreeMenuItem_actionPerformed(ActionEvent e)
2934 * Template method to handle the 'load T-Coffee scores' menu event.
2936 * Subclasses override this method to provide a custom action.
2941 protected void loadScores_actionPerformed(ActionEvent event)
2947 * Template method to handle the 'Color T-Coffee scores' menu event.
2949 * Subclasses override this method to provide a custom action.
2951 protected void tcoffeeColorScheme_actionPerformed()
2956 protected void jpred_actionPerformed(ActionEvent e)
2960 protected void scaleAbove_actionPerformed(ActionEvent e)
2964 protected void scaleLeft_actionPerformed(ActionEvent e)
2968 protected void scaleRight_actionPerformed(ActionEvent e)
2972 protected void modifyPID_actionPerformed()
2976 protected void modifyConservation_actionPerformed()
2980 protected void saveAs_actionPerformed(ActionEvent e)
2984 protected void padGapsMenuitem_actionPerformed(ActionEvent e)
2988 public void vamsasStore_actionPerformed(ActionEvent e)
2993 public void vamsasLoad_actionPerformed(ActionEvent e)
2998 public void showTranslation_actionPerformed(ActionEvent e)
3003 public void featureSettings_actionPerformed(ActionEvent e)
3008 public void fetchSequence_actionPerformed(ActionEvent e)
3013 public void smoothFont_actionPerformed(ActionEvent e)
3018 public void annotationColour_actionPerformed()
3022 public void annotationColumn_actionPerformed(ActionEvent e)
3026 public void rnahelicesColour_actionPerformed()
3031 public void associatedData_actionPerformed(ActionEvent e)
3036 public void autoCalculate_actionPerformed(ActionEvent e)
3041 public void sortByTreeOption_actionPerformed(ActionEvent e)
3046 public void showAllSeqs_actionPerformed(ActionEvent e)
3051 public void showAllColumns_actionPerformed(ActionEvent e)
3056 public void hideSelSequences_actionPerformed(ActionEvent e)
3061 public void hideSelColumns_actionPerformed(ActionEvent e)
3066 public void hiddenMarkers_actionPerformed(ActionEvent e)
3071 public void findPdbId_actionPerformed(ActionEvent e)
3076 public void enterPdbId_actionPerformed(ActionEvent e)
3081 public void pdbFile_actionPerformed(ActionEvent e)
3086 public void invertColSel_actionPerformed(ActionEvent e)
3091 public void tabSelectionChanged(int sel)
3096 public void tabbedPane_mousePressed(MouseEvent e)
3101 public void tabbedPane_focusGained(FocusEvent e)
3106 public void save_actionPerformed(ActionEvent e)
3111 public void reload_actionPerformed(ActionEvent e)
3116 public void newView_actionPerformed(ActionEvent e)
3121 public void textColour_actionPerformed()
3126 public void idRightAlign_actionPerformed(ActionEvent e)
3131 public void expandViews_actionPerformed(ActionEvent e)
3136 public void gatherViews_actionPerformed(ActionEvent e)
3141 public void buildTreeMenu()
3146 public void pageSetup_actionPerformed(ActionEvent e)
3151 public void alignmentProperties()
3156 protected void expand_newalign(ActionEvent e)
3158 // TODO Auto-generated method stub
3162 protected boolean isShowAutoCalculatedAbove()
3164 return showAutoCalculatedAbove;
3167 protected void setShowAutoCalculatedAbove(boolean showAutoCalculatedAbove)
3169 this.showAutoCalculatedAbove = showAutoCalculatedAbove;
3172 protected SequenceAnnotationOrder getAnnotationSortOrder()
3174 return annotationSortOrder;
3177 protected void setAnnotationSortOrder(
3178 SequenceAnnotationOrder annotationSortOrder)
3180 this.annotationSortOrder = annotationSortOrder;
3183 public Map<KeyStroke, JMenuItem> getAccelerators()
3185 return this.accelerators;
3189 * Returns the selected index of the tabbed pane, or -1 if none selected
3190 * (including the case where the tabbed pane has not been made visible).
3194 public int getTabIndex()
3196 return tabbedPane.getSelectedIndex();
3199 public JPanel getStatusPanel()
3205 * Sets a reference to the containing split frame. Also makes the 'toggle
3206 * split view' menu item visible and checked.
3210 public void setSplitFrame(SplitContainerI sf)
3212 this.splitFrame = sf;
3215 this.showComplementMenuItem.setVisible(true);
3216 this.showComplementMenuItem.setState(true);
3220 public SplitContainerI getSplitViewContainer()
3222 return this.splitFrame;
3225 protected void showComplement_actionPerformed(boolean complement)