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.JvSwingUtils;
27 import jalview.gui.Preferences;
28 import jalview.schemes.ColourSchemeProperty;
29 import jalview.util.MessageManager;
31 import java.awt.BorderLayout;
32 import java.awt.Color;
33 import java.awt.GridLayout;
34 import java.awt.Toolkit;
35 import java.awt.event.ActionEvent;
36 import java.awt.event.ActionListener;
37 import java.awt.event.FocusAdapter;
38 import java.awt.event.FocusEvent;
39 import java.awt.event.KeyEvent;
40 import java.awt.event.MouseAdapter;
41 import java.awt.event.MouseEvent;
42 import java.util.HashMap;
45 import javax.swing.BorderFactory;
46 import javax.swing.ButtonGroup;
47 import javax.swing.JCheckBoxMenuItem;
48 import javax.swing.JInternalFrame;
49 import javax.swing.JLabel;
50 import javax.swing.JMenu;
51 import javax.swing.JMenuBar;
52 import javax.swing.JMenuItem;
53 import javax.swing.JOptionPane;
54 import javax.swing.JPanel;
55 import javax.swing.JRadioButtonMenuItem;
56 import javax.swing.JTabbedPane;
57 import javax.swing.KeyStroke;
58 import javax.swing.event.ChangeEvent;
59 import javax.swing.event.MenuEvent;
60 import javax.swing.event.MenuListener;
62 public class GAlignFrame extends JInternalFrame
64 protected JMenuBar alignFrameMenuBar = new JMenuBar();
66 protected JMenuItem closeMenuItem = new JMenuItem();
68 protected JMenu colourMenu = new JMenu();
70 protected JMenu webService = new JMenu();
72 protected JMenuItem webServiceNoServices;
74 public JCheckBoxMenuItem viewBoxesMenuItem = new JCheckBoxMenuItem();
76 public JCheckBoxMenuItem viewTextMenuItem = new JCheckBoxMenuItem();
78 protected JMenu sortByAnnotScore = new JMenu();
80 public JLabel statusBar = new JLabel();
82 protected JMenu outputTextboxMenu = new JMenu();
84 protected JRadioButtonMenuItem clustalColour = new JRadioButtonMenuItem();
86 protected JRadioButtonMenuItem zappoColour = new JRadioButtonMenuItem();
88 protected JRadioButtonMenuItem taylorColour = new JRadioButtonMenuItem();
90 protected JRadioButtonMenuItem hydrophobicityColour = new JRadioButtonMenuItem();
92 protected JRadioButtonMenuItem helixColour = new JRadioButtonMenuItem();
94 protected JRadioButtonMenuItem strandColour = new JRadioButtonMenuItem();
96 protected JRadioButtonMenuItem turnColour = new JRadioButtonMenuItem();
98 protected JRadioButtonMenuItem buriedColour = new JRadioButtonMenuItem();
100 protected JRadioButtonMenuItem userDefinedColour = new JRadioButtonMenuItem();
102 protected JRadioButtonMenuItem PIDColour = new JRadioButtonMenuItem();
104 protected JRadioButtonMenuItem BLOSUM62Colour = new JRadioButtonMenuItem();
106 protected JRadioButtonMenuItem nucleotideColour = new JRadioButtonMenuItem();
108 protected JRadioButtonMenuItem purinePyrimidineColour = new JRadioButtonMenuItem();
110 protected JRadioButtonMenuItem RNAInteractionColour = new JRadioButtonMenuItem();
112 // protected JRadioButtonMenuItem covariationColour = new
113 // JRadioButtonMenuItem();
115 protected JRadioButtonMenuItem tcoffeeColour = new JRadioButtonMenuItem();
117 public JCheckBoxMenuItem annotationPanelMenuItem = new JCheckBoxMenuItem();
119 public JCheckBoxMenuItem colourTextMenuItem = new JCheckBoxMenuItem();
121 public JCheckBoxMenuItem showNonconservedMenuItem = new JCheckBoxMenuItem();
123 protected JMenuItem undoMenuItem = new JMenuItem();
125 protected JMenuItem redoMenuItem = new JMenuItem();
127 public JCheckBoxMenuItem conservationMenuItem = new JCheckBoxMenuItem();
129 JRadioButtonMenuItem noColourmenuItem = new JRadioButtonMenuItem();
131 public JCheckBoxMenuItem wrapMenuItem = new JCheckBoxMenuItem();
133 public JCheckBoxMenuItem renderGapsMenuItem = new JCheckBoxMenuItem();
135 public JCheckBoxMenuItem abovePIDThreshold = new JCheckBoxMenuItem();
137 public JCheckBoxMenuItem showSeqFeatures = new JCheckBoxMenuItem();
139 JMenuItem copy = new JMenuItem();
141 JMenuItem cut = new JMenuItem();
143 JMenu pasteMenu = new JMenu();
145 public JCheckBoxMenuItem applyToAllGroups = new JCheckBoxMenuItem();
147 public JCheckBoxMenuItem seqLimits = new JCheckBoxMenuItem();
149 public JCheckBoxMenuItem scaleAbove = new JCheckBoxMenuItem();
151 public JCheckBoxMenuItem scaleLeft = new JCheckBoxMenuItem();
153 public JCheckBoxMenuItem scaleRight = new JCheckBoxMenuItem();
155 protected JMenuItem modifyConservation = new JMenuItem();
157 protected JMenu sortByTreeMenu = new JMenu();
159 protected JMenu sort = new JMenu();
161 protected JMenu calculateTree = new JMenu();
163 protected JCheckBoxMenuItem padGapsMenuitem = new JCheckBoxMenuItem();
165 protected JCheckBoxMenuItem showNpFeatsMenuitem = new JCheckBoxMenuItem();
167 protected JCheckBoxMenuItem showDbRefsMenuitem = new JCheckBoxMenuItem();
169 protected ButtonGroup colours = new ButtonGroup();
171 protected JMenuItem showTranslation = new JMenuItem();
173 protected JMenuItem showReverse = new JMenuItem();
175 protected JMenuItem showReverseComplement = new JMenuItem();
177 protected JMenu showProducts = new JMenu();
179 protected JMenuItem runGroovy = new JMenuItem();
181 protected JMenuItem rnahelicesColour = new JMenuItem();
183 protected JCheckBoxMenuItem autoCalculate = new JCheckBoxMenuItem();
185 protected JCheckBoxMenuItem sortByTree = new JCheckBoxMenuItem();
187 protected JCheckBoxMenuItem listenToViewSelections = new JCheckBoxMenuItem();
189 protected JPanel statusPanel = new JPanel();
191 protected JMenuItem showAllSeqAnnotations = new JMenuItem();
193 protected JMenuItem hideAllSeqAnnotations = new JMenuItem();
195 protected JMenuItem showAllAlAnnotations = new JMenuItem();
197 protected JMenuItem hideAllAlAnnotations = new JMenuItem();
199 protected JCheckBoxMenuItem showComplementMenuItem = new JCheckBoxMenuItem();
201 protected JCheckBoxMenuItem hiddenMarkers = new JCheckBoxMenuItem();
203 protected JTabbedPane tabbedPane = new JTabbedPane();
205 protected JMenuItem reload = new JMenuItem();
207 protected JMenu formatMenu = new JMenu();
209 protected JCheckBoxMenuItem idRightAlign = new JCheckBoxMenuItem();
211 protected JCheckBoxMenuItem centreColumnLabelsMenuItem = new JCheckBoxMenuItem();
213 protected JCheckBoxMenuItem followHighlightMenuItem = new JCheckBoxMenuItem();
215 protected JMenuItem gatherViews = new JMenuItem();
217 protected JMenuItem expandViews = new JMenuItem();
219 protected JCheckBoxMenuItem showGroupConsensus = new JCheckBoxMenuItem();
221 protected JCheckBoxMenuItem showGroupConservation = new JCheckBoxMenuItem();
223 protected JCheckBoxMenuItem showConsensusHistogram = new JCheckBoxMenuItem();
225 protected JCheckBoxMenuItem showSequenceLogo = new JCheckBoxMenuItem();
227 protected JCheckBoxMenuItem normaliseSequenceLogo = new JCheckBoxMenuItem();
229 protected JCheckBoxMenuItem applyAutoAnnotationSettings = new JCheckBoxMenuItem();
231 private SequenceAnnotationOrder annotationSortOrder;
233 private boolean showAutoCalculatedAbove = false;
235 private Map<KeyStroke, JMenuItem> accelerators = new HashMap<KeyStroke, JMenuItem>();
237 private SplitContainerI splitFrame;
244 setJMenuBar(alignFrameMenuBar);
246 // dynamically fill save as menu with available formats
247 for (int i = 0; i < jalview.io.FormatAdapter.WRITEABLE_FORMATS.length; i++)
249 JMenuItem item = new JMenuItem(
250 jalview.io.FormatAdapter.WRITEABLE_FORMATS[i]);
252 item.addActionListener(new ActionListener()
255 public void actionPerformed(ActionEvent e)
257 outputText_actionPerformed(e);
261 outputTextboxMenu.add(item);
263 } catch (Exception e)
265 System.err.println(e.toString());
268 if (!jalview.util.Platform.isAMac())
270 closeMenuItem.setMnemonic('C');
271 outputTextboxMenu.setMnemonic('T');
272 undoMenuItem.setMnemonic('Z');
273 redoMenuItem.setMnemonic('0');
274 copy.setMnemonic('C');
275 cut.setMnemonic('U');
276 pasteMenu.setMnemonic('P');
277 reload.setMnemonic('R');
280 if (jalview.gui.UserDefinedColours.getUserColourSchemes() != null)
282 java.util.Enumeration userColours = jalview.gui.UserDefinedColours
283 .getUserColourSchemes().keys();
285 while (userColours.hasMoreElements())
287 final JRadioButtonMenuItem radioItem = new JRadioButtonMenuItem(
288 userColours.nextElement().toString());
289 radioItem.setName("USER_DEFINED");
290 radioItem.addMouseListener(new MouseAdapter()
293 public void mousePressed(MouseEvent evt)
295 if (evt.isPopupTrigger()) // Mac
297 offerRemoval(radioItem);
302 public void mouseReleased(MouseEvent evt)
304 if (evt.isPopupTrigger()) // Windows
306 offerRemoval(radioItem);
313 void offerRemoval(final JRadioButtonMenuItem radioItem)
315 radioItem.removeActionListener(radioItem.getActionListeners()[0]);
317 int option = JOptionPane.showInternalConfirmDialog(
318 jalview.gui.Desktop.desktop, MessageManager
319 .getString("label.remove_from_default_list"),
321 .getString("label.remove_user_defined_colour"),
322 JOptionPane.YES_NO_OPTION);
323 if (option == JOptionPane.YES_OPTION)
325 jalview.gui.UserDefinedColours
326 .removeColourFromDefaults(radioItem.getText());
327 colourMenu.remove(radioItem);
331 radioItem.addActionListener(new ActionListener()
334 public void actionPerformed(ActionEvent evt)
336 userDefinedColour_actionPerformed(evt);
342 radioItem.addActionListener(new ActionListener()
345 public void actionPerformed(ActionEvent evt)
347 userDefinedColour_actionPerformed(evt);
350 colourMenu.insert(radioItem, 15);
351 colours.add(radioItem);
354 colours.add(noColourmenuItem);
355 colours.add(clustalColour);
356 colours.add(zappoColour);
357 colours.add(taylorColour);
358 colours.add(hydrophobicityColour);
359 colours.add(helixColour);
360 colours.add(strandColour);
361 colours.add(turnColour);
362 colours.add(buriedColour);
363 colours.add(userDefinedColour);
364 colours.add(PIDColour);
365 colours.add(BLOSUM62Colour);
366 colours.add(nucleotideColour);
367 colours.add(purinePyrimidineColour);
368 // colours.add(covariationColour);
369 colours.add(tcoffeeColour);
370 colours.add(RNAInteractionColour);
371 setColourSelected(jalview.bin.Cache.getDefault(
372 Preferences.DEFAULT_COLOUR, "None"));
375 public void setColourSelected(String defaultColour)
378 if (defaultColour != null)
380 int index = ColourSchemeProperty
381 .getColourIndexFromName(defaultColour);
385 case ColourSchemeProperty.CLUSTAL:
386 clustalColour.setSelected(true);
390 case ColourSchemeProperty.BLOSUM:
391 BLOSUM62Colour.setSelected(true);
395 case ColourSchemeProperty.PID:
396 PIDColour.setSelected(true);
400 case ColourSchemeProperty.ZAPPO:
401 zappoColour.setSelected(true);
405 case ColourSchemeProperty.TAYLOR:
406 taylorColour.setSelected(true);
409 case ColourSchemeProperty.HYDROPHOBIC:
410 hydrophobicityColour.setSelected(true);
414 case ColourSchemeProperty.HELIX:
415 helixColour.setSelected(true);
419 case ColourSchemeProperty.STRAND:
420 strandColour.setSelected(true);
424 case ColourSchemeProperty.TURN:
425 turnColour.setSelected(true);
429 case ColourSchemeProperty.BURIED:
430 buriedColour.setSelected(true);
434 case ColourSchemeProperty.NUCLEOTIDE:
435 nucleotideColour.setSelected(true);
439 case ColourSchemeProperty.TCOFFEE:
440 tcoffeeColour.setSelected(true);
443 case ColourSchemeProperty.PURINEPYRIMIDINE:
444 purinePyrimidineColour.setSelected(true);
448 case ColourSchemeProperty.RNAINTERACTION:
449 RNAInteractionColour.setSelected(true);
453 * case ColourSchemeProperty.COVARIATION:
454 * covariationColour.setSelected(true);
458 case ColourSchemeProperty.USER_DEFINED:
459 userDefinedColour.setSelected(true);
462 case ColourSchemeProperty.NONE:
464 noColourmenuItem.setSelected(true);
472 private void jbInit() throws Exception
474 JMenuItem saveAs = new JMenuItem(
475 MessageManager.getString("action.save_as"));
476 ActionListener al = new ActionListener()
479 public void actionPerformed(ActionEvent e)
481 saveAs_actionPerformed(e);
484 KeyStroke keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_S, Toolkit
485 .getDefaultToolkit().getMenuShortcutKeyMask()
486 | KeyEvent.SHIFT_MASK, false);
487 addMenuActionAndAccelerator(keyStroke, saveAs, al);
489 closeMenuItem.setText(MessageManager.getString("action.close"));
490 keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_W, Toolkit
491 .getDefaultToolkit().getMenuShortcutKeyMask(), false);
492 al = new ActionListener()
495 public void actionPerformed(ActionEvent e)
497 closeMenuItem_actionPerformed(false);
500 addMenuActionAndAccelerator(keyStroke, closeMenuItem, al);
502 JMenu editMenu = new JMenu(MessageManager.getString("action.edit"));
503 JMenu viewMenu = new JMenu(MessageManager.getString("action.view"));
504 JMenu annotationsMenu = new JMenu(
505 MessageManager.getString("action.annotations"));
506 JMenu showMenu = new JMenu(MessageManager.getString("action.show"));
507 colourMenu.setText(MessageManager.getString("action.colour"));
508 JMenu calculateMenu = new JMenu(
509 MessageManager.getString("action.calculate"));
510 webService.setText(MessageManager.getString("action.web_service"));
511 JMenuItem selectAllSequenceMenuItem = new JMenuItem(
512 MessageManager.getString("action.select_all"));
513 keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_A, Toolkit
514 .getDefaultToolkit().getMenuShortcutKeyMask(), false);
515 al = new ActionListener()
518 public void actionPerformed(ActionEvent e)
520 selectAllSequenceMenuItem_actionPerformed(e);
523 addMenuActionAndAccelerator(keyStroke, selectAllSequenceMenuItem, al);
525 JMenuItem deselectAllSequenceMenuItem = new JMenuItem(
526 MessageManager.getString("action.deselect_all"));
527 keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_ESCAPE, 0, false);
528 al = new ActionListener()
531 public void actionPerformed(ActionEvent e)
533 deselectAllSequenceMenuItem_actionPerformed(e);
536 addMenuActionAndAccelerator(keyStroke, deselectAllSequenceMenuItem, al);
538 JMenuItem invertSequenceMenuItem = new JMenuItem(
539 MessageManager.getString("action.invert_sequence_selection"));
540 keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_I, Toolkit
541 .getDefaultToolkit().getMenuShortcutKeyMask(), false);
542 al = new ActionListener()
545 public void actionPerformed(ActionEvent e)
547 invertSequenceMenuItem_actionPerformed(e);
550 addMenuActionAndAccelerator(keyStroke, invertSequenceMenuItem, al);
552 JMenuItem grpsFromSelection = new JMenuItem(
553 MessageManager.getString("action.make_groups_selection"));
554 grpsFromSelection.addActionListener(new ActionListener()
557 public void actionPerformed(ActionEvent e)
559 makeGrpsFromSelection_actionPerformed(e);
562 JMenuItem expandAlignment = new JMenuItem(
563 MessageManager.getString("action.view_flanking_regions"));
564 expandAlignment.setToolTipText(MessageManager
565 .getString("label.view_flanking_regions"));
566 expandAlignment.addActionListener(new ActionListener()
569 public void actionPerformed(ActionEvent e)
574 JMenuItem remove2LeftMenuItem = new JMenuItem(
575 MessageManager.getString("action.remove_left"));
576 keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_L, Toolkit
577 .getDefaultToolkit().getMenuShortcutKeyMask(), false);
578 al = new ActionListener()
581 public void actionPerformed(ActionEvent e)
583 remove2LeftMenuItem_actionPerformed(e);
586 addMenuActionAndAccelerator(keyStroke, remove2LeftMenuItem, al);
588 JMenuItem remove2RightMenuItem = new JMenuItem(
589 MessageManager.getString("action.remove_right"));
590 keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_R, Toolkit
591 .getDefaultToolkit().getMenuShortcutKeyMask(), false);
592 al = new ActionListener()
595 public void actionPerformed(ActionEvent e)
597 remove2RightMenuItem_actionPerformed(e);
600 addMenuActionAndAccelerator(keyStroke, remove2RightMenuItem, al);
602 JMenuItem removeGappedColumnMenuItem = new JMenuItem(
603 MessageManager.getString("action.remove_empty_columns"));
604 keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_E, Toolkit
605 .getDefaultToolkit().getMenuShortcutKeyMask(), false);
606 al = new ActionListener()
609 public void actionPerformed(ActionEvent e)
611 removeGappedColumnMenuItem_actionPerformed(e);
614 addMenuActionAndAccelerator(keyStroke, removeGappedColumnMenuItem, al);
616 JMenuItem removeAllGapsMenuItem = new JMenuItem(
617 MessageManager.getString("action.remove_all_gaps"));
618 keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_E, Toolkit
619 .getDefaultToolkit().getMenuShortcutKeyMask()
620 | KeyEvent.SHIFT_MASK, false);
621 al = new ActionListener()
624 public void actionPerformed(ActionEvent e)
626 removeAllGapsMenuItem_actionPerformed(e);
629 addMenuActionAndAccelerator(keyStroke, removeAllGapsMenuItem, al);
631 JMenuItem justifyLeftMenuItem = new JMenuItem(
632 MessageManager.getString("action.left_justify_alignment"));
633 justifyLeftMenuItem.addActionListener(new ActionListener()
636 public void actionPerformed(ActionEvent e)
638 justifyLeftMenuItem_actionPerformed(e);
641 JMenuItem justifyRightMenuItem = new JMenuItem(
642 MessageManager.getString("action.right_justify_alignment"));
643 justifyRightMenuItem.addActionListener(new ActionListener()
646 public void actionPerformed(ActionEvent e)
648 justifyRightMenuItem_actionPerformed(e);
651 viewBoxesMenuItem.setText(MessageManager.getString("action.boxes"));
652 viewBoxesMenuItem.setState(true);
653 viewBoxesMenuItem.addActionListener(new ActionListener()
656 public void actionPerformed(ActionEvent e)
658 viewBoxesMenuItem_actionPerformed(e);
661 viewTextMenuItem.setText(MessageManager.getString("action.text"));
662 viewTextMenuItem.setState(true);
663 viewTextMenuItem.addActionListener(new ActionListener()
666 public void actionPerformed(ActionEvent e)
668 viewTextMenuItem_actionPerformed(e);
671 showNonconservedMenuItem.setText(MessageManager
672 .getString("label.show_non_conversed"));
673 showNonconservedMenuItem.setState(false);
674 showNonconservedMenuItem.addActionListener(new ActionListener()
677 public void actionPerformed(ActionEvent e)
679 showUnconservedMenuItem_actionPerformed(e);
682 JMenuItem sortPairwiseMenuItem = new JMenuItem(
683 MessageManager.getString("action.by_pairwise_id"));
684 sortPairwiseMenuItem.addActionListener(new ActionListener()
687 public void actionPerformed(ActionEvent e)
689 sortPairwiseMenuItem_actionPerformed(e);
692 JMenuItem sortIDMenuItem = new JMenuItem(
693 MessageManager.getString("action.by_id"));
694 sortIDMenuItem.addActionListener(new ActionListener()
697 public void actionPerformed(ActionEvent e)
699 sortIDMenuItem_actionPerformed(e);
702 JMenuItem sortLengthMenuItem = new JMenuItem(
703 MessageManager.getString("action.by_length"));
704 sortLengthMenuItem.addActionListener(new ActionListener()
707 public void actionPerformed(ActionEvent e)
709 sortLengthMenuItem_actionPerformed(e);
712 JMenuItem sortGroupMenuItem = new JMenuItem(
713 MessageManager.getString("action.by_group"));
714 sortGroupMenuItem.addActionListener(new ActionListener()
717 public void actionPerformed(ActionEvent e)
719 sortGroupMenuItem_actionPerformed(e);
723 JMenuItem removeRedundancyMenuItem = new JMenuItem(
724 MessageManager.getString("action.remove_redundancy"));
725 keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_D, Toolkit
726 .getDefaultToolkit().getMenuShortcutKeyMask(), false);
727 al = new ActionListener()
730 public void actionPerformed(ActionEvent e)
732 removeRedundancyMenuItem_actionPerformed(e);
735 addMenuActionAndAccelerator(keyStroke, removeRedundancyMenuItem, al);
737 JMenuItem pairwiseAlignmentMenuItem = new JMenuItem(
738 MessageManager.getString("action.pairwise_alignment"));
739 pairwiseAlignmentMenuItem.addActionListener(new ActionListener()
742 public void actionPerformed(ActionEvent e)
744 pairwiseAlignmentMenuItem_actionPerformed(e);
747 JMenuItem PCAMenuItem = new JMenuItem(
748 MessageManager.getString("label.principal_component_analysis"));
749 PCAMenuItem.addActionListener(new ActionListener()
752 public void actionPerformed(ActionEvent e)
754 PCAMenuItem_actionPerformed(e);
757 JMenuItem averageDistanceTreeMenuItem = new JMenuItem(
758 MessageManager.getString("label.average_distance_identity"));
759 averageDistanceTreeMenuItem.addActionListener(new ActionListener()
762 public void actionPerformed(ActionEvent e)
764 averageDistanceTreeMenuItem_actionPerformed(e);
767 JMenuItem neighbourTreeMenuItem = new JMenuItem(
768 MessageManager.getString("label.neighbour_joining_identity"));
769 neighbourTreeMenuItem.addActionListener(new ActionListener()
772 public void actionPerformed(ActionEvent e)
774 neighbourTreeMenuItem_actionPerformed(e);
778 this.getContentPane().setLayout(new BorderLayout());
779 alignFrameMenuBar.setFont(new java.awt.Font("Verdana", 0, 11));
780 statusBar.setBackground(Color.white);
781 statusBar.setFont(new java.awt.Font("Verdana", 0, 11));
782 statusBar.setBorder(BorderFactory.createLineBorder(Color.black));
783 statusBar.setText(MessageManager.getString("label.status_bar"));
784 outputTextboxMenu.setText(MessageManager
785 .getString("label.out_to_textbox"));
786 clustalColour.setText(MessageManager.getString("label.clustalx"));
787 clustalColour.addActionListener(new ActionListener()
790 public void actionPerformed(ActionEvent e)
792 clustalColour_actionPerformed(e);
795 zappoColour.setText(MessageManager.getString("label.zappo"));
796 zappoColour.addActionListener(new ActionListener()
799 public void actionPerformed(ActionEvent e)
801 zappoColour_actionPerformed(e);
804 taylorColour.setText(MessageManager.getString("label.taylor"));
805 taylorColour.addActionListener(new ActionListener()
808 public void actionPerformed(ActionEvent e)
810 taylorColour_actionPerformed(e);
813 hydrophobicityColour.setText(MessageManager
814 .getString("label.hydrophobicity"));
815 hydrophobicityColour.addActionListener(new ActionListener()
818 public void actionPerformed(ActionEvent e)
820 hydrophobicityColour_actionPerformed(e);
823 helixColour.setText(MessageManager.getString("label.helix_propensity"));
824 helixColour.addActionListener(new ActionListener()
827 public void actionPerformed(ActionEvent e)
829 helixColour_actionPerformed(e);
832 strandColour.setText(MessageManager
833 .getString("label.strand_propensity"));
834 strandColour.addActionListener(new ActionListener()
837 public void actionPerformed(ActionEvent e)
839 strandColour_actionPerformed(e);
842 turnColour.setText(MessageManager.getString("label.turn_propensity"));
843 turnColour.addActionListener(new ActionListener()
846 public void actionPerformed(ActionEvent e)
848 turnColour_actionPerformed(e);
851 buriedColour.setText(MessageManager.getString("label.buried_index"));
852 buriedColour.addActionListener(new ActionListener()
855 public void actionPerformed(ActionEvent e)
857 buriedColour_actionPerformed(e);
860 userDefinedColour.setText(MessageManager
861 .getString("action.user_defined"));
862 userDefinedColour.addActionListener(new ActionListener()
865 public void actionPerformed(ActionEvent e)
867 userDefinedColour_actionPerformed(e);
871 .setText(MessageManager.getString("label.percentage_identity"));
872 PIDColour.addActionListener(new ActionListener()
875 public void actionPerformed(ActionEvent e)
877 PIDColour_actionPerformed(e);
881 .setText(MessageManager.getString("label.blosum62_score"));
882 BLOSUM62Colour.addActionListener(new ActionListener()
885 public void actionPerformed(ActionEvent e)
887 BLOSUM62Colour_actionPerformed(e);
890 nucleotideColour.setText(MessageManager.getString("label.nucleotide"));
891 nucleotideColour.addActionListener(new ActionListener()
894 public void actionPerformed(ActionEvent e)
896 nucleotideColour_actionPerformed(e);
900 purinePyrimidineColour.setText(MessageManager
901 .getString("label.purine_pyrimidine"));
902 purinePyrimidineColour.addActionListener(new ActionListener()
905 public void actionPerformed(ActionEvent e)
907 purinePyrimidineColour_actionPerformed(e);
911 RNAInteractionColour.setText("RNA Interaction type");
912 RNAInteractionColour.addActionListener(new ActionListener()
915 public void actionPerformed(ActionEvent e)
917 RNAInteractionColour_actionPerformed(e);
921 * covariationColour.setText("Covariation");
922 * covariationColour.addActionListener(new ActionListener() { public void
923 * actionPerformed(ActionEvent e) { covariationColour_actionPerformed(e); }
927 JMenuItem avDistanceTreeBlosumMenuItem = new JMenuItem(
928 MessageManager.getString("label.average_distance_bloslum62"));
929 avDistanceTreeBlosumMenuItem.addActionListener(new ActionListener()
932 public void actionPerformed(ActionEvent e)
934 avTreeBlosumMenuItem_actionPerformed(e);
937 JMenuItem njTreeBlosumMenuItem = new JMenuItem(
938 MessageManager.getString("label.neighbour_blosum62"));
939 njTreeBlosumMenuItem.addActionListener(new ActionListener()
942 public void actionPerformed(ActionEvent e)
944 njTreeBlosumMenuItem_actionPerformed(e);
947 annotationPanelMenuItem.setActionCommand("");
948 annotationPanelMenuItem.setText(MessageManager
949 .getString("label.show_annotations"));
950 annotationPanelMenuItem.setState(Cache.getDefault("SHOW_ANNOTATIONS",
952 annotationPanelMenuItem.addActionListener(new ActionListener()
955 public void actionPerformed(ActionEvent e)
957 annotationPanelMenuItem_actionPerformed(e);
960 showAllAlAnnotations.setText(MessageManager
961 .getString("label.show_all_al_annotations"));
962 final boolean isAnnotationPanelShown = annotationPanelMenuItem
964 showAllAlAnnotations.setEnabled(isAnnotationPanelShown);
965 showAllAlAnnotations.addActionListener(new ActionListener()
968 public void actionPerformed(ActionEvent e)
970 showAllAnnotations_actionPerformed(false, true);
973 hideAllAlAnnotations.setText(MessageManager
974 .getString("label.hide_all_al_annotations"));
975 hideAllAlAnnotations.setEnabled(isAnnotationPanelShown);
976 hideAllAlAnnotations.addActionListener(new ActionListener()
979 public void actionPerformed(ActionEvent e)
981 hideAllAnnotations_actionPerformed(false, true);
984 showAllSeqAnnotations.setText(MessageManager
985 .getString("label.show_all_seq_annotations"));
986 showAllSeqAnnotations.setEnabled(isAnnotationPanelShown);
987 showAllSeqAnnotations.addActionListener(new ActionListener()
990 public void actionPerformed(ActionEvent e)
992 showAllAnnotations_actionPerformed(true, false);
995 hideAllSeqAnnotations.setText(MessageManager
996 .getString("label.hide_all_seq_annotations"));
997 hideAllSeqAnnotations.setEnabled(isAnnotationPanelShown);
998 hideAllSeqAnnotations.addActionListener(new ActionListener()
1001 public void actionPerformed(ActionEvent e)
1003 hideAllAnnotations_actionPerformed(true, false);
1006 SequenceAnnotationOrder sortAnnotationsBy = SequenceAnnotationOrder
1007 .valueOf(Cache.getDefault(Preferences.SORT_ANNOTATIONS,
1008 SequenceAnnotationOrder.NONE.name()));
1009 final JCheckBoxMenuItem sortAnnBySequence = new JCheckBoxMenuItem(
1010 MessageManager.getString("label.sort_annotations_by_sequence"));
1011 final JCheckBoxMenuItem sortAnnByLabel = new JCheckBoxMenuItem(
1012 MessageManager.getString("label.sort_annotations_by_label"));
1015 .setSelected(sortAnnotationsBy == SequenceAnnotationOrder.SEQUENCE_AND_LABEL);
1016 sortAnnBySequence.addActionListener(new ActionListener()
1019 public void actionPerformed(ActionEvent e)
1021 boolean newState = sortAnnBySequence.getState();
1022 sortAnnByLabel.setSelected(false);
1023 setAnnotationSortOrder(newState ? SequenceAnnotationOrder.SEQUENCE_AND_LABEL
1024 : SequenceAnnotationOrder.NONE);
1025 sortAnnotations_actionPerformed();
1029 .setSelected(sortAnnotationsBy == SequenceAnnotationOrder.LABEL_AND_SEQUENCE);
1030 sortAnnByLabel.addActionListener(new ActionListener()
1033 public void actionPerformed(ActionEvent e)
1035 boolean newState = sortAnnByLabel.getState();
1036 sortAnnBySequence.setSelected(false);
1037 setAnnotationSortOrder(newState ? SequenceAnnotationOrder.LABEL_AND_SEQUENCE
1038 : SequenceAnnotationOrder.NONE);
1039 sortAnnotations_actionPerformed();
1042 colourTextMenuItem.setText(MessageManager
1043 .getString("label.colour_text"));
1044 colourTextMenuItem.addActionListener(new ActionListener()
1047 public void actionPerformed(ActionEvent e)
1049 colourTextMenuItem_actionPerformed(e);
1053 JMenuItem htmlMenuItem = new JMenuItem(
1054 MessageManager.getString("label.html"));
1055 htmlMenuItem.addActionListener(new ActionListener()
1058 public void actionPerformed(ActionEvent e)
1060 htmlMenuItem_actionPerformed(e);
1064 JMenuItem createBioJS = new JMenuItem(
1065 MessageManager.getString("label.biojs_html_export"));
1066 createBioJS.addActionListener(new java.awt.event.ActionListener()
1069 public void actionPerformed(ActionEvent e)
1071 bioJSMenuItem_actionPerformed(e);
1075 JMenuItem overviewMenuItem = new JMenuItem(
1076 MessageManager.getString("label.overview_window"));
1077 overviewMenuItem.addActionListener(new ActionListener()
1080 public void actionPerformed(ActionEvent e)
1082 overviewMenuItem_actionPerformed(e);
1086 undoMenuItem.setEnabled(false);
1087 undoMenuItem.setText(MessageManager.getString("action.undo"));
1088 keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_Z, Toolkit
1089 .getDefaultToolkit().getMenuShortcutKeyMask(), false);
1090 al = new ActionListener()
1093 public void actionPerformed(ActionEvent e)
1095 undoMenuItem_actionPerformed(e);
1098 addMenuActionAndAccelerator(keyStroke, undoMenuItem, al);
1100 redoMenuItem.setEnabled(false);
1101 redoMenuItem.setText(MessageManager.getString("action.redo"));
1102 keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_Y, Toolkit
1103 .getDefaultToolkit().getMenuShortcutKeyMask(), false);
1104 al = new ActionListener()
1107 public void actionPerformed(ActionEvent e)
1109 redoMenuItem_actionPerformed(e);
1112 addMenuActionAndAccelerator(keyStroke, redoMenuItem, al);
1114 conservationMenuItem.setText(MessageManager
1115 .getString("action.by_conservation"));
1116 conservationMenuItem.addActionListener(new ActionListener()
1119 public void actionPerformed(ActionEvent e)
1121 conservationMenuItem_actionPerformed(e);
1124 noColourmenuItem.setText(MessageManager.getString("label.none"));
1125 noColourmenuItem.addActionListener(new ActionListener()
1128 public void actionPerformed(ActionEvent e)
1130 noColourmenuItem_actionPerformed(e);
1133 wrapMenuItem.setText(MessageManager.getString("label.wrap"));
1134 wrapMenuItem.addActionListener(new ActionListener()
1137 public void actionPerformed(ActionEvent e)
1139 wrapMenuItem_actionPerformed(e);
1143 JMenuItem printMenuItem = new JMenuItem(
1144 MessageManager.getString("action.print"));
1145 keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_P, Toolkit
1146 .getDefaultToolkit().getMenuShortcutKeyMask(), false);
1147 al = new ActionListener()
1150 public void actionPerformed(ActionEvent e)
1152 printMenuItem_actionPerformed(e);
1155 addMenuActionAndAccelerator(keyStroke, printMenuItem, al);
1158 .setText(MessageManager.getString("action.show_gaps"));
1159 renderGapsMenuItem.setState(true);
1160 renderGapsMenuItem.addActionListener(new ActionListener()
1163 public void actionPerformed(ActionEvent e)
1165 renderGapsMenuItem_actionPerformed(e);
1169 JMenuItem findMenuItem = new JMenuItem(
1170 MessageManager.getString("action.find"));
1171 keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_F, Toolkit
1172 .getDefaultToolkit().getMenuShortcutKeyMask(), false);
1173 findMenuItem.setToolTipText(JvSwingUtils.wrapTooltip(true,
1174 MessageManager.getString("label.find_tip")));
1175 al = new ActionListener()
1178 public void actionPerformed(ActionEvent e)
1180 findMenuItem_actionPerformed(e);
1183 addMenuActionAndAccelerator(keyStroke, findMenuItem, al);
1185 abovePIDThreshold.setText(MessageManager
1186 .getString("label.above_identity_threshold"));
1187 abovePIDThreshold.addActionListener(new ActionListener()
1190 public void actionPerformed(ActionEvent e)
1192 abovePIDThreshold_actionPerformed(e);
1195 showSeqFeatures.setText(MessageManager
1196 .getString("label.show_sequence_features"));
1197 showSeqFeatures.addActionListener(new ActionListener()
1200 public void actionPerformed(ActionEvent actionEvent)
1202 showSeqFeatures_actionPerformed(actionEvent);
1206 * showSeqFeaturesHeight.setText("Vary Sequence Feature Height");
1207 * showSeqFeaturesHeight.addActionListener(new ActionListener() { public
1208 * void actionPerformed(ActionEvent actionEvent) {
1209 * showSeqFeaturesHeight_actionPerformed(actionEvent); } });
1211 showDbRefsMenuitem.setText(MessageManager
1212 .getString("label.show_database_refs"));
1213 showDbRefsMenuitem.addActionListener(new ActionListener()
1217 public void actionPerformed(ActionEvent e)
1219 showDbRefs_actionPerformed(e);
1223 showNpFeatsMenuitem.setText(MessageManager
1224 .getString("label.show_non_positional_features"));
1225 showNpFeatsMenuitem.addActionListener(new ActionListener()
1229 public void actionPerformed(ActionEvent e)
1231 showNpFeats_actionPerformed(e);
1235 showGroupConservation.setText(MessageManager
1236 .getString("label.group_conservation"));
1237 showGroupConservation.addActionListener(new ActionListener()
1241 public void actionPerformed(ActionEvent e)
1243 showGroupConservation_actionPerformed(e);
1248 showGroupConsensus.setText(MessageManager
1249 .getString("label.group_consensus"));
1250 showGroupConsensus.addActionListener(new ActionListener()
1254 public void actionPerformed(ActionEvent e)
1256 showGroupConsensus_actionPerformed(e);
1260 showConsensusHistogram.setText(MessageManager
1261 .getString("label.show_consensus_histogram"));
1262 showConsensusHistogram.addActionListener(new ActionListener()
1266 public void actionPerformed(ActionEvent e)
1268 showConsensusHistogram_actionPerformed(e);
1272 showSequenceLogo.setText(MessageManager
1273 .getString("label.show_consensus_logo"));
1274 showSequenceLogo.addActionListener(new ActionListener()
1278 public void actionPerformed(ActionEvent e)
1280 showSequenceLogo_actionPerformed(e);
1284 normaliseSequenceLogo.setText(MessageManager
1285 .getString("label.norm_consensus_logo"));
1286 normaliseSequenceLogo.addActionListener(new ActionListener()
1290 public void actionPerformed(ActionEvent e)
1292 normaliseSequenceLogo_actionPerformed(e);
1296 applyAutoAnnotationSettings.setText(MessageManager
1297 .getString("label.apply_all_groups"));
1298 applyAutoAnnotationSettings.setState(false);
1299 applyAutoAnnotationSettings.setVisible(true);
1300 applyAutoAnnotationSettings.addActionListener(new ActionListener()
1303 public void actionPerformed(ActionEvent e)
1305 applyAutoAnnotationSettings_actionPerformed(e);
1309 ButtonGroup buttonGroup = new ButtonGroup();
1310 final JRadioButtonMenuItem showAutoFirst = new JRadioButtonMenuItem(
1311 MessageManager.getString("label.show_first"));
1312 final JRadioButtonMenuItem showAutoLast = new JRadioButtonMenuItem(
1313 MessageManager.getString("label.show_last"));
1314 buttonGroup.add(showAutoFirst);
1315 buttonGroup.add(showAutoLast);
1316 final boolean autoFirst = Cache.getDefault(
1317 Preferences.SHOW_AUTOCALC_ABOVE, false);
1318 showAutoFirst.setSelected(autoFirst);
1319 setShowAutoCalculatedAbove(autoFirst);
1320 showAutoFirst.addActionListener(new ActionListener()
1323 public void actionPerformed(ActionEvent e)
1325 setShowAutoCalculatedAbove(showAutoFirst.isSelected());
1326 sortAnnotations_actionPerformed();
1329 showAutoLast.setSelected(!showAutoFirst.isSelected());
1330 showAutoLast.addActionListener(new ActionListener()
1333 public void actionPerformed(ActionEvent e)
1335 setShowAutoCalculatedAbove(!showAutoLast.isSelected());
1336 sortAnnotations_actionPerformed();
1340 nucleotideColour.setText(MessageManager.getString("label.nucleotide"));
1341 nucleotideColour.addActionListener(new ActionListener()
1344 public void actionPerformed(ActionEvent e)
1346 nucleotideColour_actionPerformed(e);
1350 tcoffeeColour.setText(MessageManager.getString("label.tcoffee_scores"));
1351 tcoffeeColour.setEnabled(false);
1352 tcoffeeColour.addActionListener(new ActionListener()
1356 public void actionPerformed(ActionEvent e)
1358 tcoffeeColorScheme_actionPerformed(e);
1362 JMenuItem deleteGroups = new JMenuItem(
1363 MessageManager.getString("action.undefine_groups"));
1364 keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_U, Toolkit
1365 .getDefaultToolkit().getMenuShortcutKeyMask(), false);
1366 al = new ActionListener()
1369 public void actionPerformed(ActionEvent e)
1371 deleteGroups_actionPerformed(e);
1374 addMenuActionAndAccelerator(keyStroke, deleteGroups, al);
1376 JMenuItem createGroup = new JMenuItem(
1377 MessageManager.getString("action.create_groups"));
1378 keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_G, Toolkit
1379 .getDefaultToolkit().getMenuShortcutKeyMask(), false);
1380 al = new ActionListener()
1383 public void actionPerformed(ActionEvent e)
1385 createGroup_actionPerformed(e);
1388 addMenuActionAndAccelerator(keyStroke, createGroup, al);
1390 JMenuItem unGroup = new JMenuItem(
1391 MessageManager.getString("action.remove_group"));
1392 keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_G, Toolkit
1393 .getDefaultToolkit().getMenuShortcutKeyMask()
1394 | KeyEvent.SHIFT_MASK, false);
1395 al = new ActionListener()
1398 public void actionPerformed(ActionEvent e)
1400 unGroup_actionPerformed(e);
1403 addMenuActionAndAccelerator(keyStroke, unGroup, al);
1405 copy.setText(MessageManager.getString("action.copy"));
1406 keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_C, Toolkit
1407 .getDefaultToolkit().getMenuShortcutKeyMask(), false);
1409 al = new ActionListener()
1412 public void actionPerformed(ActionEvent e)
1414 copy_actionPerformed(e);
1417 addMenuActionAndAccelerator(keyStroke, copy, al);
1419 cut.setText(MessageManager.getString("action.cut"));
1420 keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_X, Toolkit
1421 .getDefaultToolkit().getMenuShortcutKeyMask(), false);
1422 al = new ActionListener()
1425 public void actionPerformed(ActionEvent e)
1427 cut_actionPerformed(e);
1430 addMenuActionAndAccelerator(keyStroke, cut, al);
1432 JMenuItem delete = new JMenuItem(
1433 MessageManager.getString("action.delete"));
1434 delete.addActionListener(new ActionListener()
1437 public void actionPerformed(ActionEvent e)
1439 delete_actionPerformed(e);
1443 pasteMenu.setText(MessageManager.getString("action.paste"));
1444 JMenuItem pasteNew = new JMenuItem(
1445 MessageManager.getString("label.to_new_alignment"));
1446 keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_V, Toolkit
1447 .getDefaultToolkit().getMenuShortcutKeyMask()
1448 | KeyEvent.SHIFT_MASK, false);
1449 al = new ActionListener()
1452 public void actionPerformed(ActionEvent e)
1454 pasteNew_actionPerformed(e);
1457 addMenuActionAndAccelerator(keyStroke, pasteNew, al);
1459 JMenuItem pasteThis = new JMenuItem(
1460 MessageManager.getString("label.to_this_alignment"));
1461 keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_V, Toolkit
1462 .getDefaultToolkit().getMenuShortcutKeyMask(), false);
1463 al = new ActionListener()
1466 public void actionPerformed(ActionEvent e)
1468 pasteThis_actionPerformed(e);
1471 addMenuActionAndAccelerator(keyStroke, pasteThis, al);
1473 applyToAllGroups.setText(MessageManager
1474 .getString("label.apply_colour_to_all_groups"));
1475 applyToAllGroups.addActionListener(new ActionListener()
1478 public void actionPerformed(ActionEvent e)
1480 applyToAllGroups_actionPerformed(e);
1483 JMenuItem createPNG = new JMenuItem("PNG");
1484 createPNG.addActionListener(new ActionListener()
1487 public void actionPerformed(ActionEvent e)
1492 createPNG.setActionCommand(MessageManager
1493 .getString("label.save_png_image"));
1495 JMenuItem font = new JMenuItem(MessageManager.getString("action.font"));
1496 font.addActionListener(new ActionListener()
1499 public void actionPerformed(ActionEvent e)
1501 font_actionPerformed(e);
1504 seqLimits.setText(MessageManager
1505 .getString("label.show_sequence_limits"));
1506 seqLimits.setState(jalview.bin.Cache.getDefault("SHOW_JVSUFFIX", true));
1507 seqLimits.addActionListener(new ActionListener()
1510 public void actionPerformed(ActionEvent e)
1512 seqLimit_actionPerformed(e);
1515 JMenuItem epsFile = new JMenuItem("EPS");
1516 epsFile.addActionListener(new ActionListener()
1519 public void actionPerformed(ActionEvent e)
1525 JMenuItem createSVG = new JMenuItem("SVG");
1526 createSVG.addActionListener(new ActionListener()
1529 public void actionPerformed(ActionEvent e)
1535 JMenuItem loadTreeMenuItem = new JMenuItem(
1536 MessageManager.getString("label.load_associated_tree"));
1537 loadTreeMenuItem.setActionCommand(MessageManager
1538 .getString("label.load_tree_for_sequence_set"));
1539 loadTreeMenuItem.addActionListener(new ActionListener()
1542 public void actionPerformed(ActionEvent e)
1544 loadTreeMenuItem_actionPerformed(e);
1548 scaleAbove.setVisible(false);
1549 scaleAbove.setText(MessageManager.getString("action.scale_above"));
1550 scaleAbove.addActionListener(new ActionListener()
1553 public void actionPerformed(ActionEvent e)
1555 scaleAbove_actionPerformed(e);
1558 scaleLeft.setVisible(false);
1559 scaleLeft.setSelected(true);
1560 scaleLeft.setText(MessageManager.getString("action.scale_left"));
1561 scaleLeft.addActionListener(new ActionListener()
1564 public void actionPerformed(ActionEvent e)
1566 scaleLeft_actionPerformed(e);
1569 scaleRight.setVisible(false);
1570 scaleRight.setSelected(true);
1571 scaleRight.setText(MessageManager.getString("action.scale_right"));
1572 scaleRight.addActionListener(new ActionListener()
1575 public void actionPerformed(ActionEvent e)
1577 scaleRight_actionPerformed(e);
1580 centreColumnLabelsMenuItem.setVisible(true);
1581 centreColumnLabelsMenuItem.setState(false);
1582 centreColumnLabelsMenuItem.setText(MessageManager
1583 .getString("label.centre_column_labels"));
1584 centreColumnLabelsMenuItem.addActionListener(new ActionListener()
1587 public void actionPerformed(ActionEvent e)
1589 centreColumnLabels_actionPerformed(e);
1592 followHighlightMenuItem.setVisible(true);
1593 followHighlightMenuItem.setState(true);
1594 followHighlightMenuItem.setText(MessageManager
1595 .getString("label.automatic_scrolling"));
1596 followHighlightMenuItem.addActionListener(new ActionListener()
1600 public void actionPerformed(ActionEvent e)
1602 followHighlight_actionPerformed();
1607 JMenuItem modifyPID = new JMenuItem(
1608 MessageManager.getString("label.modify_identity_threshold"));
1609 modifyPID.addActionListener(new ActionListener()
1612 public void actionPerformed(ActionEvent e)
1614 modifyPID_actionPerformed(e);
1617 modifyConservation.setText(MessageManager
1618 .getString("label.modify_conservation_threshold"));
1619 modifyConservation.addActionListener(new ActionListener()
1622 public void actionPerformed(ActionEvent e)
1624 modifyConservation_actionPerformed(e);
1628 .setText(MessageManager.getString("action.by_tree_order"));
1629 sort.setText(MessageManager.getString("action.sort"));
1630 sort.addMenuListener(new MenuListener()
1633 public void menuSelected(MenuEvent e)
1639 public void menuDeselected(MenuEvent e)
1644 public void menuCanceled(MenuEvent e)
1648 sortByAnnotScore.setText(MessageManager
1649 .getString("label.sort_by_score"));
1650 sort.add(sortByAnnotScore);
1651 sort.addMenuListener(new javax.swing.event.MenuListener()
1655 public void menuCanceled(MenuEvent e)
1660 public void menuDeselected(MenuEvent e)
1665 public void menuSelected(MenuEvent e)
1667 buildSortByAnnotationScoresMenu();
1670 sortByAnnotScore.setVisible(false);
1673 .setText(MessageManager.getString("action.calculate_tree"));
1675 padGapsMenuitem.setText(MessageManager.getString("label.pad_gaps"));
1676 padGapsMenuitem.setState(jalview.bin.Cache
1677 .getDefault("PAD_GAPS", false));
1678 padGapsMenuitem.addActionListener(new ActionListener()
1681 public void actionPerformed(ActionEvent e)
1683 padGapsMenuitem_actionPerformed(e);
1686 JMenuItem vamsasStore = new JMenuItem(
1687 MessageManager.getString("label.vamsas_store"));
1688 vamsasStore.setVisible(false);
1689 vamsasStore.addActionListener(new ActionListener()
1692 public void actionPerformed(ActionEvent e)
1694 vamsasStore_actionPerformed(e);
1697 showTranslation.setText(MessageManager
1698 .getString("label.translate_cDNA"));
1699 showTranslation.addActionListener(new ActionListener()
1702 public void actionPerformed(ActionEvent e)
1704 showTranslation_actionPerformed(e);
1707 showReverse.setText(MessageManager.getString("label.reverse"));
1708 showReverse.addActionListener(new ActionListener()
1711 public void actionPerformed(ActionEvent e)
1713 showReverse_actionPerformed(false);
1716 showReverseComplement.setText(MessageManager
1717 .getString("label.reverse_complement"));
1718 showReverseComplement.addActionListener(new ActionListener()
1721 public void actionPerformed(ActionEvent e)
1723 showReverse_actionPerformed(true);
1727 JMenuItem extractScores = new JMenuItem(
1728 MessageManager.getString("label.extract_scores"));
1729 extractScores.addActionListener(new ActionListener()
1732 public void actionPerformed(ActionEvent e)
1734 extractScores_actionPerformed(e);
1737 extractScores.setVisible(true);
1738 // JBPNote: TODO: make gui for regex based score extraction
1740 // for show products actions see AlignFrame.canShowProducts
1741 showProducts.setText(MessageManager.getString("label.get_cross_refs"));
1743 runGroovy.setText(MessageManager.getString("label.run_groovy"));
1744 runGroovy.setToolTipText(MessageManager
1745 .getString("label.run_groovy_tip"));
1746 runGroovy.addActionListener(new ActionListener()
1749 public void actionPerformed(ActionEvent e)
1751 runGroovy_actionPerformed();
1755 JMenuItem openFeatureSettings = new JMenuItem(
1756 MessageManager.getString("action.feature_settings"));
1757 openFeatureSettings.addActionListener(new ActionListener()
1760 public void actionPerformed(ActionEvent e)
1762 featureSettings_actionPerformed(e);
1765 JMenuItem fetchSequence = new JMenuItem(
1766 MessageManager.getString("label.fetch_sequences"));
1767 fetchSequence.addActionListener(new ActionListener()
1770 public void actionPerformed(ActionEvent e)
1772 fetchSequence_actionPerformed(e);
1776 JMenuItem annotationColour = new JMenuItem(
1777 MessageManager.getString("action.by_annotation"));
1778 annotationColour.addActionListener(new ActionListener()
1781 public void actionPerformed(ActionEvent e)
1783 annotationColour_actionPerformed(e);
1787 JMenuItem annotationColumn = new JMenuItem(
1788 MessageManager.getString("action.select_by_annotation"));
1789 annotationColumn.addActionListener(new ActionListener()
1792 public void actionPerformed(ActionEvent e)
1794 annotationColumn_actionPerformed(e);
1798 rnahelicesColour.setText(MessageManager
1799 .getString("action.by_rna_helixes"));
1800 rnahelicesColour.addActionListener(new ActionListener()
1803 public void actionPerformed(ActionEvent e)
1805 rnahelicesColour_actionPerformed(e);
1809 JMenuItem associatedData = new JMenuItem(
1810 MessageManager.getString("label.load_features_annotations"));
1811 associatedData.addActionListener(new ActionListener()
1814 public void actionPerformed(ActionEvent e)
1816 associatedData_actionPerformed(e);
1819 autoCalculate.setText(MessageManager
1820 .getString("label.autocalculate_consensus"));
1821 autoCalculate.setState(jalview.bin.Cache.getDefault(
1822 "AUTO_CALC_CONSENSUS", true));
1823 autoCalculate.addActionListener(new ActionListener()
1826 public void actionPerformed(ActionEvent e)
1828 autoCalculate_actionPerformed(e);
1831 sortByTree.setText(MessageManager
1832 .getString("label.sort_alignment_new_tree"));
1834 .setToolTipText("<html>"
1836 .getString("label.enable_automatically_sort_alignment_when_open_new_tree"));
1838 .setState(jalview.bin.Cache.getDefault("SORT_BY_TREE", false));
1839 sortByTree.addActionListener(new ActionListener()
1842 public void actionPerformed(ActionEvent e)
1844 sortByTreeOption_actionPerformed(e);
1848 listenToViewSelections.setText(MessageManager
1849 .getString("label.listen_for_selections"));
1850 listenToViewSelections
1851 .setToolTipText("<html>"
1853 .getString("label.selections_mirror_selections_made_same_sequences_other_views"));
1854 listenToViewSelections.setState(false);
1855 listenToViewSelections.addActionListener(new ActionListener()
1858 public void actionPerformed(ActionEvent e)
1860 listenToViewSelections_actionPerformed(e);
1864 JMenu addSequenceMenu = new JMenu(
1865 MessageManager.getString("label.add_sequences"));
1866 JMenuItem addFromFile = new JMenuItem(
1867 MessageManager.getString("label.from_file"));
1868 addFromFile.addActionListener(new ActionListener()
1871 public void actionPerformed(ActionEvent e)
1873 addFromFile_actionPerformed(e);
1876 JMenuItem addFromText = new JMenuItem(
1877 MessageManager.getString("label.from_textbox"));
1878 addFromText.addActionListener(new ActionListener()
1881 public void actionPerformed(ActionEvent e)
1883 addFromText_actionPerformed(e);
1886 JMenuItem addFromURL = new JMenuItem(
1887 MessageManager.getString("label.from_url"));
1888 addFromURL.addActionListener(new ActionListener()
1891 public void actionPerformed(ActionEvent e)
1893 addFromURL_actionPerformed(e);
1896 JMenuItem exportFeatures = new JMenuItem(
1897 MessageManager.getString("label.export_features"));
1898 exportFeatures.addActionListener(new ActionListener()
1901 public void actionPerformed(ActionEvent e)
1903 exportFeatures_actionPerformed(e);
1906 JMenuItem exportAnnotations = new JMenuItem(
1907 MessageManager.getString("label.export_annotations"));
1908 exportAnnotations.addActionListener(new ActionListener()
1911 public void actionPerformed(ActionEvent e)
1913 exportAnnotations_actionPerformed(e);
1916 statusPanel.setLayout(new GridLayout());
1917 JMenuItem showAllSeqs = new JMenuItem(
1918 MessageManager.getString("label.all_sequences"));
1919 showAllSeqs.setToolTipText(MessageManager
1920 .getString("label.toggle_sequence_visibility"));
1921 showAllSeqs.addActionListener(new ActionListener()
1924 public void actionPerformed(ActionEvent e)
1926 showAllSeqs_actionPerformed(e);
1929 JMenuItem showAllColumns = new JMenuItem(
1930 MessageManager.getString("label.all_columns"));
1931 showAllColumns.setToolTipText(MessageManager
1932 .getString("label.toggle_columns_visibility"));
1933 showAllColumns.addActionListener(new ActionListener()
1936 public void actionPerformed(ActionEvent e)
1938 showAllColumns_actionPerformed(e);
1941 JMenu hideMenu = new JMenu(MessageManager.getString("action.hide"));
1942 JMenuItem hideSelSequences = new JMenuItem(
1943 MessageManager.getString("label.selected_sequences"));
1944 hideSelSequences.setToolTipText(MessageManager
1945 .getString("label.toggle_sequence_visibility"));
1946 hideSelSequences.addActionListener(new ActionListener()
1949 public void actionPerformed(ActionEvent e)
1951 hideSelSequences_actionPerformed(e);
1954 JMenuItem hideSelColumns = new JMenuItem(
1955 MessageManager.getString("label.selected_columns"));
1956 hideSelColumns.setToolTipText(MessageManager
1957 .getString("label.toggle_columns_visibility"));
1958 hideSelColumns.addActionListener(new ActionListener()
1961 public void actionPerformed(ActionEvent e)
1963 hideSelColumns_actionPerformed(e);
1966 JMenuItem hideAllSelection = new JMenuItem(
1967 MessageManager.getString("label.selected_region"));
1968 hideAllSelection.addActionListener(new ActionListener()
1971 public void actionPerformed(ActionEvent e)
1973 hideAllSelection_actionPerformed(e);
1976 // TODO: should be hidden if no selection exists.
1977 JMenuItem hideAllButSelection = new JMenuItem(
1978 MessageManager.getString("label.all_but_selected_region"));
1979 hideAllButSelection.addActionListener(new ActionListener()
1982 public void actionPerformed(ActionEvent e)
1984 hideAllButSelection_actionPerformed(e);
1987 JMenuItem showAllhidden = new JMenuItem(
1988 MessageManager.getString("label.all_sequences_columns"));
1989 showAllhidden.setToolTipText(MessageManager
1990 .getString("label.toggles_visibility_hidden_selected_regions"));
1991 showAllhidden.addActionListener(new ActionListener()
1994 public void actionPerformed(ActionEvent e)
1996 showAllhidden_actionPerformed(e);
1999 hiddenMarkers.setText(MessageManager
2000 .getString("action.show_hidden_markers"));
2001 hiddenMarkers.addActionListener(new ActionListener()
2004 public void actionPerformed(ActionEvent e)
2006 hiddenMarkers_actionPerformed(e);
2010 JMenuItem invertColSel = new JMenuItem(
2011 MessageManager.getString("action.invert_column_selection"));
2012 keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_I, Toolkit
2013 .getDefaultToolkit().getMenuShortcutKeyMask()
2014 | KeyEvent.ALT_MASK, false);
2015 al = new ActionListener()
2018 public void actionPerformed(ActionEvent e)
2020 invertColSel_actionPerformed(e);
2023 addMenuActionAndAccelerator(keyStroke, invertColSel, al);
2025 showComplementMenuItem.setVisible(false);
2026 showComplementMenuItem.addActionListener(new ActionListener()
2029 public void actionPerformed(ActionEvent e)
2031 showComplement_actionPerformed(showComplementMenuItem.getState());
2035 tabbedPane.addChangeListener(new javax.swing.event.ChangeListener()
2038 public void stateChanged(ChangeEvent evt)
2040 JTabbedPane pane = (JTabbedPane) evt.getSource();
2041 int sel = pane.getSelectedIndex();
2042 tabSelectionChanged(sel);
2045 tabbedPane.addMouseListener(new MouseAdapter()
2048 public void mousePressed(MouseEvent e)
2050 if (e.isPopupTrigger()) // Mac
2052 tabbedPane_mousePressed(e);
2057 public void mouseReleased(MouseEvent e)
2059 if (e.isPopupTrigger()) // Windows
2061 tabbedPane_mousePressed(e);
2065 tabbedPane.addFocusListener(new FocusAdapter()
2068 public void focusGained(FocusEvent e)
2070 tabbedPane_focusGained(e);
2074 JMenuItem save = new JMenuItem(MessageManager.getString("action.save"));
2075 keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_S, Toolkit
2076 .getDefaultToolkit().getMenuShortcutKeyMask(), false);
2077 al = new ActionListener()
2080 public void actionPerformed(ActionEvent e)
2082 save_actionPerformed(e);
2085 addMenuActionAndAccelerator(keyStroke, save, al);
2087 reload.setEnabled(false);
2088 reload.setText(MessageManager.getString("action.reload"));
2089 reload.addActionListener(new ActionListener()
2092 public void actionPerformed(ActionEvent e)
2094 reload_actionPerformed(e);
2098 JMenuItem newView = new JMenuItem(
2099 MessageManager.getString("action.new_view"));
2100 keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_T, Toolkit
2101 .getDefaultToolkit().getMenuShortcutKeyMask(), false);
2102 al = new ActionListener()
2105 public void actionPerformed(ActionEvent e)
2107 newView_actionPerformed(e);
2110 addMenuActionAndAccelerator(keyStroke, newView, al);
2112 tabbedPane.setToolTipText("<html><i>"
2113 + MessageManager.getString("label.rename_tab_eXpand_reGroup")
2115 JMenuItem textColour = new JMenuItem(
2116 MessageManager.getString("action.set_text_colour"));
2117 textColour.addActionListener(new ActionListener()
2120 public void actionPerformed(ActionEvent e)
2122 textColour_actionPerformed(e);
2125 formatMenu.setText(MessageManager.getString("action.format"));
2126 JMenu selectMenu = new JMenu(MessageManager.getString("action.select"));
2127 idRightAlign.setText(MessageManager
2128 .getString("label.right_align_sequence_id"));
2129 idRightAlign.addActionListener(new ActionListener()
2132 public void actionPerformed(ActionEvent e)
2134 idRightAlign_actionPerformed(e);
2138 gatherViews.setEnabled(false);
2139 gatherViews.setText(MessageManager.getString("action.gather_views"));
2140 keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_G, 0, false);
2141 al = new ActionListener()
2144 public void actionPerformed(ActionEvent e)
2146 gatherViews_actionPerformed(e);
2149 addMenuActionAndAccelerator(keyStroke, gatherViews, al);
2151 expandViews.setEnabled(false);
2152 expandViews.setText(MessageManager.getString("action.expand_views"));
2153 keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_X, 0, false);
2154 al = new ActionListener()
2157 public void actionPerformed(ActionEvent e)
2159 expandViews_actionPerformed(e);
2162 addMenuActionAndAccelerator(keyStroke, expandViews, al);
2164 JMenuItem pageSetup = new JMenuItem(
2165 MessageManager.getString("action.page_setup"));
2166 pageSetup.addActionListener(new ActionListener()
2169 public void actionPerformed(ActionEvent e)
2171 pageSetup_actionPerformed(e);
2174 JMenuItem alignmentProperties = new JMenuItem(
2175 MessageManager.getString("label.alignment_props"));
2176 alignmentProperties.addActionListener(new ActionListener()
2179 public void actionPerformed(ActionEvent actionEvent)
2181 alignmentProperties();
2184 JMenu tooltipSettingsMenu = new JMenu(
2185 MessageManager.getString("label.sequence_id_tooltip"));
2186 JMenu autoAnnMenu = new JMenu(
2187 MessageManager.getString("label.autocalculated_annotation"));
2189 JMenu exportImageMenu = new JMenu(
2190 MessageManager.getString("label.export_image"));
2191 JMenu fileMenu = new JMenu(MessageManager.getString("action.file"));
2192 alignFrameMenuBar.add(fileMenu);
2193 alignFrameMenuBar.add(editMenu);
2194 alignFrameMenuBar.add(selectMenu);
2195 alignFrameMenuBar.add(viewMenu);
2196 alignFrameMenuBar.add(annotationsMenu);
2197 alignFrameMenuBar.add(formatMenu);
2198 alignFrameMenuBar.add(colourMenu);
2199 alignFrameMenuBar.add(calculateMenu);
2200 alignFrameMenuBar.add(webService);
2202 fileMenu.add(fetchSequence);
2203 fileMenu.add(addSequenceMenu);
2204 fileMenu.add(reload);
2205 fileMenu.addSeparator();
2206 fileMenu.add(vamsasStore);
2208 fileMenu.add(saveAs);
2209 fileMenu.add(outputTextboxMenu);
2210 fileMenu.add(pageSetup);
2211 fileMenu.add(printMenuItem);
2212 fileMenu.addSeparator();
2213 fileMenu.add(exportImageMenu);
2214 fileMenu.add(exportFeatures);
2215 fileMenu.add(exportAnnotations);
2216 fileMenu.add(loadTreeMenuItem);
2217 fileMenu.add(associatedData);
2218 fileMenu.addSeparator();
2219 fileMenu.add(closeMenuItem);
2221 pasteMenu.add(pasteNew);
2222 pasteMenu.add(pasteThis);
2223 editMenu.add(undoMenuItem);
2224 editMenu.add(redoMenuItem);
2227 editMenu.add(pasteMenu);
2228 editMenu.add(delete);
2229 editMenu.addSeparator();
2230 editMenu.add(remove2LeftMenuItem);
2231 editMenu.add(remove2RightMenuItem);
2232 editMenu.add(removeGappedColumnMenuItem);
2233 editMenu.add(removeAllGapsMenuItem);
2234 editMenu.add(removeRedundancyMenuItem);
2235 editMenu.addSeparator();
2236 // dont add these yet in the CVS build - they cannot be undone!
2237 // Excluded from Jalview 2.5 release - undo needs to be implemented.
2238 // editMenu.add(justifyLeftMenuItem);
2239 // editMenu.add(justifyRightMenuItem);
2240 // editMenu.addSeparator();
2241 editMenu.add(padGapsMenuitem);
2243 showMenu.add(showAllColumns);
2244 showMenu.add(showAllSeqs);
2245 showMenu.add(showAllhidden);
2246 hideMenu.add(hideSelColumns);
2247 hideMenu.add(hideSelSequences);
2248 hideMenu.add(hideAllSelection);
2249 hideMenu.add(hideAllButSelection);
2250 viewMenu.add(newView);
2251 viewMenu.add(expandViews);
2252 viewMenu.add(gatherViews);
2253 viewMenu.addSeparator();
2254 viewMenu.add(showMenu);
2255 viewMenu.add(hideMenu);
2256 viewMenu.add(showComplementMenuItem);
2257 viewMenu.addSeparator();
2258 viewMenu.add(followHighlightMenuItem);
2259 viewMenu.addSeparator();
2260 viewMenu.add(showSeqFeatures);
2261 // viewMenu.add(showSeqFeaturesHeight);
2262 viewMenu.add(openFeatureSettings);
2263 tooltipSettingsMenu.add(showDbRefsMenuitem);
2264 tooltipSettingsMenu.add(showNpFeatsMenuitem);
2265 viewMenu.add(tooltipSettingsMenu);
2266 viewMenu.addSeparator();
2267 viewMenu.add(alignmentProperties);
2268 viewMenu.addSeparator();
2269 viewMenu.add(overviewMenuItem);
2271 annotationsMenu.add(annotationPanelMenuItem);
2272 annotationsMenu.addSeparator();
2273 annotationsMenu.add(showAllAlAnnotations);
2274 annotationsMenu.add(hideAllAlAnnotations);
2275 annotationsMenu.addSeparator();
2276 annotationsMenu.add(showAllSeqAnnotations);
2277 annotationsMenu.add(hideAllSeqAnnotations);
2278 annotationsMenu.add(sortAnnBySequence);
2279 annotationsMenu.add(sortAnnByLabel);
2280 annotationsMenu.addSeparator();
2281 autoAnnMenu.add(showAutoFirst);
2282 autoAnnMenu.add(showAutoLast);
2283 autoAnnMenu.addSeparator();
2284 autoAnnMenu.add(applyAutoAnnotationSettings);
2285 autoAnnMenu.add(showConsensusHistogram);
2286 autoAnnMenu.add(showSequenceLogo);
2287 autoAnnMenu.add(normaliseSequenceLogo);
2288 autoAnnMenu.addSeparator();
2289 autoAnnMenu.add(showGroupConservation);
2290 autoAnnMenu.add(showGroupConsensus);
2291 annotationsMenu.add(autoAnnMenu);
2293 colourMenu.add(applyToAllGroups);
2294 colourMenu.add(textColour);
2295 colourMenu.addSeparator();
2296 colourMenu.add(noColourmenuItem);
2297 colourMenu.add(clustalColour);
2298 colourMenu.add(BLOSUM62Colour);
2299 colourMenu.add(PIDColour);
2300 colourMenu.add(zappoColour);
2301 colourMenu.add(taylorColour);
2302 colourMenu.add(hydrophobicityColour);
2303 colourMenu.add(helixColour);
2304 colourMenu.add(strandColour);
2305 colourMenu.add(turnColour);
2306 colourMenu.add(buriedColour);
2307 colourMenu.add(nucleotideColour);
2308 colourMenu.add(purinePyrimidineColour);
2309 colourMenu.add(RNAInteractionColour);
2310 // colourMenu.add(covariationColour);
2311 colourMenu.add(tcoffeeColour);
2312 colourMenu.add(userDefinedColour);
2313 colourMenu.addSeparator();
2314 colourMenu.add(conservationMenuItem);
2315 colourMenu.add(modifyConservation);
2316 colourMenu.add(abovePIDThreshold);
2317 colourMenu.add(modifyPID);
2318 colourMenu.add(annotationColour);
2319 colourMenu.add(rnahelicesColour);
2321 sort.add(sortIDMenuItem);
2322 sort.add(sortLengthMenuItem);
2323 sort.add(sortGroupMenuItem);
2324 sort.add(sortPairwiseMenuItem);
2325 sort.add(sortByTreeMenu);
2326 calculateMenu.add(sort);
2327 calculateMenu.add(calculateTree);
2328 calculateMenu.addSeparator();
2329 calculateMenu.add(pairwiseAlignmentMenuItem);
2330 calculateMenu.add(PCAMenuItem);
2331 calculateMenu.addSeparator();
2332 calculateMenu.add(showTranslation);
2333 calculateMenu.add(showReverse);
2334 calculateMenu.add(showReverseComplement);
2335 calculateMenu.add(showProducts);
2336 calculateMenu.add(autoCalculate);
2337 calculateMenu.add(sortByTree);
2338 calculateMenu.addSeparator();
2339 calculateMenu.add(expandAlignment);
2340 calculateMenu.add(extractScores);
2341 calculateMenu.addSeparator();
2342 calculateMenu.add(runGroovy);
2344 webServiceNoServices = new JMenuItem(
2345 MessageManager.getString("label.no_services"));
2346 webService.add(webServiceNoServices);
2347 exportImageMenu.add(htmlMenuItem);
2348 exportImageMenu.add(epsFile);
2349 exportImageMenu.add(createPNG);
2350 exportImageMenu.add(createBioJS);
2351 exportImageMenu.add(createSVG);
2352 addSequenceMenu.add(addFromFile);
2353 addSequenceMenu.add(addFromText);
2354 addSequenceMenu.add(addFromURL);
2355 this.getContentPane().add(statusPanel, java.awt.BorderLayout.SOUTH);
2356 statusPanel.add(statusBar, null);
2357 this.getContentPane().add(tabbedPane, java.awt.BorderLayout.CENTER);
2359 formatMenu.add(font);
2360 formatMenu.addSeparator();
2361 formatMenu.add(wrapMenuItem);
2362 formatMenu.add(scaleAbove);
2363 formatMenu.add(scaleLeft);
2364 formatMenu.add(scaleRight);
2365 formatMenu.add(seqLimits);
2366 formatMenu.add(idRightAlign);
2367 formatMenu.add(hiddenMarkers);
2368 formatMenu.add(viewBoxesMenuItem);
2369 formatMenu.add(viewTextMenuItem);
2370 formatMenu.add(colourTextMenuItem);
2371 formatMenu.add(renderGapsMenuItem);
2372 formatMenu.add(centreColumnLabelsMenuItem);
2373 formatMenu.add(showNonconservedMenuItem);
2374 selectMenu.add(findMenuItem);
2375 selectMenu.addSeparator();
2376 selectMenu.add(selectAllSequenceMenuItem);
2377 selectMenu.add(deselectAllSequenceMenuItem);
2378 selectMenu.add(invertSequenceMenuItem);
2379 selectMenu.add(invertColSel);
2380 selectMenu.add(createGroup);
2381 selectMenu.add(unGroup);
2382 selectMenu.add(grpsFromSelection);
2383 selectMenu.add(deleteGroups);
2384 selectMenu.add(annotationColumn);
2385 // TODO - determine if the listenToViewSelections button is needed : see bug
2387 // selectMenu.addSeparator();
2388 // selectMenu.add(listenToViewSelections);
2392 * Generate the reverse sequence (or reverse complement if the flag is true)
2393 * and add it to the alignment
2397 protected void showReverse_actionPerformed(boolean complement)
2402 * Try to run script in a Groovy console, having first ensured that this
2403 * alignframe is set as currentAlignFrame in Desktop
2405 protected void runGroovy_actionPerformed()
2411 * Adds the given action listener and key accelerator to the given menu item.
2412 * Also saves in a lookup table to support lookup of action by key stroke.
2416 * @param actionListener
2418 protected void addMenuActionAndAccelerator(KeyStroke keyStroke,
2419 JMenuItem menuItem, ActionListener actionListener)
2421 menuItem.setAccelerator(keyStroke);
2422 accelerators.put(keyStroke, menuItem);
2423 menuItem.addActionListener(actionListener);
2427 * Action on clicking sort annotations by type.
2431 protected void sortAnnotations_actionPerformed()
2436 * Action on clicking Show all annotations.
2438 * @param forSequences
2439 * update sequence-related annotations
2440 * @param forAlignment
2441 * update non-sequence-related annotations
2443 protected void showAllAnnotations_actionPerformed(boolean forSequences,
2444 boolean forAlignment)
2446 setAnnotationsVisibility(true, forSequences, forAlignment);
2450 * Action on clicking Hide all annotations.
2452 * @param forSequences
2453 * update sequence-related annotations
2454 * @param forAlignment
2455 * update non-sequence-related annotations
2457 protected void hideAllAnnotations_actionPerformed(boolean forSequences,
2458 boolean forAlignment)
2460 setAnnotationsVisibility(false, forSequences, forAlignment);
2464 * Set the visibility of annotations to true or false. Can act on
2465 * sequence-related annotations, or alignment-related, or both.
2468 * @param forSequences
2469 * update sequence-related annotations
2470 * @param forAlignment
2471 * update non-sequence-related annotations
2473 protected void setAnnotationsVisibility(boolean visible,
2474 boolean forSequences, boolean forAlignment)
2479 protected void normaliseSequenceLogo_actionPerformed(ActionEvent e)
2481 // TODO Auto-generated method stub
2485 protected void listenToViewSelections_actionPerformed(ActionEvent e)
2487 // TODO Auto-generated method stub
2491 protected void showAllhidden_actionPerformed(ActionEvent e)
2493 // TODO Auto-generated method stub
2497 protected void hideAllButSelection_actionPerformed(ActionEvent e)
2499 // TODO Auto-generated method stub
2503 protected void hideAllSelection_actionPerformed(ActionEvent e)
2505 // TODO Auto-generated method stub
2509 protected void applyAutoAnnotationSettings_actionPerformed(ActionEvent e)
2511 // TODO Auto-generated method stub
2515 protected void showConsensusHistogram_actionPerformed(ActionEvent e)
2517 // TODO Auto-generated method stub
2521 protected void showSequenceLogo_actionPerformed(ActionEvent e)
2523 // TODO Auto-generated method stub
2527 protected void makeGrpsFromSelection_actionPerformed(ActionEvent e)
2529 // TODO Auto-generated method stub
2533 protected void showGroupConsensus_actionPerformed(ActionEvent e)
2535 // TODO Auto-generated method stub
2539 protected void showGroupConservation_actionPerformed(ActionEvent e)
2541 // TODO Auto-generated method stub
2545 protected void showUnconservedMenuItem_actionPerformed(ActionEvent e)
2547 // TODO Auto-generated method stub
2551 protected void justifyRightMenuItem_actionPerformed(ActionEvent e)
2553 // TODO Auto-generated method stub
2557 protected void justifyLeftMenuItem_actionPerformed(ActionEvent e)
2559 // TODO Auto-generated method stub
2563 protected void followHighlight_actionPerformed()
2565 // TODO Auto-generated method stub
2569 protected void showNpFeats_actionPerformed(ActionEvent e)
2571 // TODO Auto-generated method stub
2575 protected void showDbRefs_actionPerformed(ActionEvent e)
2577 // TODO Auto-generated method stub
2581 protected void centreColumnLabels_actionPerformed(ActionEvent e)
2585 protected void buildSortByAnnotationScoresMenu()
2589 protected void extractScores_actionPerformed(ActionEvent e)
2593 protected void outputText_actionPerformed(ActionEvent e)
2597 public void addFromFile_actionPerformed(ActionEvent e)
2602 public void addFromText_actionPerformed(ActionEvent e)
2607 public void addFromURL_actionPerformed(ActionEvent e)
2612 public void exportFeatures_actionPerformed(ActionEvent e)
2617 public void exportAnnotations_actionPerformed(ActionEvent e)
2622 protected void htmlMenuItem_actionPerformed(ActionEvent e)
2626 protected void bioJSMenuItem_actionPerformed(ActionEvent e)
2631 protected void closeMenuItem_actionPerformed(boolean b)
2635 protected void redoMenuItem_actionPerformed(ActionEvent e)
2639 protected void undoMenuItem_actionPerformed(ActionEvent e)
2643 protected void selectAllSequenceMenuItem_actionPerformed(ActionEvent e)
2647 protected void deselectAllSequenceMenuItem_actionPerformed(ActionEvent e)
2651 protected void invertSequenceMenuItem_actionPerformed(ActionEvent e)
2655 protected void remove2LeftMenuItem_actionPerformed(ActionEvent e)
2659 protected void remove2RightMenuItem_actionPerformed(ActionEvent e)
2663 protected void removeGappedColumnMenuItem_actionPerformed(ActionEvent e)
2667 protected void removeAllGapsMenuItem_actionPerformed(ActionEvent e)
2671 protected void wrapMenuItem_actionPerformed(ActionEvent e)
2675 protected void viewBoxesMenuItem_actionPerformed(ActionEvent e)
2679 protected void viewTextMenuItem_actionPerformed(ActionEvent e)
2683 protected void colourTextMenuItem_actionPerformed(ActionEvent e)
2687 protected void annotationPanelMenuItem_actionPerformed(ActionEvent e)
2691 protected void overviewMenuItem_actionPerformed(ActionEvent e)
2695 protected void sortPairwiseMenuItem_actionPerformed(ActionEvent e)
2699 protected void sortIDMenuItem_actionPerformed(ActionEvent e)
2703 protected void sortLengthMenuItem_actionPerformed(ActionEvent e)
2707 protected void sortGroupMenuItem_actionPerformed(ActionEvent e)
2711 protected void removeRedundancyMenuItem_actionPerformed(ActionEvent e)
2715 protected void pairwiseAlignmentMenuItem_actionPerformed(ActionEvent e)
2719 protected void PCAMenuItem_actionPerformed(ActionEvent e)
2723 protected void averageDistanceTreeMenuItem_actionPerformed(ActionEvent e)
2727 protected void neighbourTreeMenuItem_actionPerformed(ActionEvent e)
2731 protected void njTreeBlosumMenuItem_actionPerformed(ActionEvent e)
2735 protected void avTreeBlosumMenuItem_actionPerformed(ActionEvent e)
2739 protected void clustalColour_actionPerformed(ActionEvent e)
2743 protected void zappoColour_actionPerformed(ActionEvent e)
2747 protected void taylorColour_actionPerformed(ActionEvent e)
2751 protected void hydrophobicityColour_actionPerformed(ActionEvent e)
2755 protected void helixColour_actionPerformed(ActionEvent e)
2759 protected void strandColour_actionPerformed(ActionEvent e)
2763 protected void turnColour_actionPerformed(ActionEvent e)
2767 protected void buriedColour_actionPerformed(ActionEvent e)
2771 protected void userDefinedColour_actionPerformed(ActionEvent e)
2775 protected void PIDColour_actionPerformed(ActionEvent e)
2779 protected void BLOSUM62Colour_actionPerformed(ActionEvent e)
2783 protected void purinePyrimidineColour_actionPerformed(ActionEvent e)
2787 protected void RNAInteractionColour_actionPerformed(ActionEvent e)
2792 * protected void covariationColour_actionPerformed(ActionEvent e) { }
2795 protected void noColourmenuItem_actionPerformed(ActionEvent e)
2799 protected void conservationMenuItem_actionPerformed(ActionEvent e)
2803 protected void printMenuItem_actionPerformed(ActionEvent e)
2807 protected void renderGapsMenuItem_actionPerformed(ActionEvent e)
2811 protected void findMenuItem_actionPerformed(ActionEvent e)
2815 protected void abovePIDThreshold_actionPerformed(ActionEvent e)
2819 public void showSeqFeatures_actionPerformed(ActionEvent actionEvent)
2823 protected void nucleotideColour_actionPerformed(ActionEvent e)
2827 protected void deleteGroups_actionPerformed(ActionEvent e)
2831 protected void createGroup_actionPerformed(ActionEvent e)
2835 protected void unGroup_actionPerformed(ActionEvent e)
2839 protected void copy_actionPerformed(ActionEvent e)
2843 protected void cut_actionPerformed(ActionEvent e)
2847 protected void delete_actionPerformed(ActionEvent e)
2851 protected void pasteNew_actionPerformed(ActionEvent e)
2855 protected void pasteThis_actionPerformed(ActionEvent e)
2859 protected void applyToAllGroups_actionPerformed(ActionEvent e)
2863 public void createPNG(java.io.File f)
2867 protected void font_actionPerformed(ActionEvent e)
2871 protected void seqLimit_actionPerformed(ActionEvent e)
2875 public void seqDBRef_actionPerformed(ActionEvent e)
2880 public void createEPS(java.io.File f)
2884 public void createSVG(java.io.File f)
2889 protected void loadTreeMenuItem_actionPerformed(ActionEvent e)
2895 * Template method to handle the 'load T-Coffee scores' menu event.
2897 * Subclasses override this method to provide a custom action.
2902 protected void loadScores_actionPerformed(ActionEvent event)
2908 * Template method to handle the 'Color T-Coffee scores' menu event.
2910 * Subclasses override this method to provide a custom action.
2915 protected void tcoffeeColorScheme_actionPerformed(ActionEvent event)
2920 protected void jpred_actionPerformed(ActionEvent e)
2924 protected void scaleAbove_actionPerformed(ActionEvent e)
2928 protected void scaleLeft_actionPerformed(ActionEvent e)
2932 protected void scaleRight_actionPerformed(ActionEvent e)
2936 protected void modifyPID_actionPerformed(ActionEvent e)
2940 protected void modifyConservation_actionPerformed(ActionEvent e)
2944 protected void saveAs_actionPerformed(ActionEvent e)
2948 protected void padGapsMenuitem_actionPerformed(ActionEvent e)
2952 public void vamsasStore_actionPerformed(ActionEvent e)
2957 public void vamsasLoad_actionPerformed(ActionEvent e)
2962 public void showTranslation_actionPerformed(ActionEvent e)
2967 public void featureSettings_actionPerformed(ActionEvent e)
2972 public void fetchSequence_actionPerformed(ActionEvent e)
2977 public void smoothFont_actionPerformed(ActionEvent e)
2982 public void annotationColour_actionPerformed(ActionEvent e)
2987 public void annotationColumn_actionPerformed(ActionEvent e)
2992 public void rnahelicesColour_actionPerformed(ActionEvent e)
2997 public void associatedData_actionPerformed(ActionEvent e)
3002 public void autoCalculate_actionPerformed(ActionEvent e)
3007 public void sortByTreeOption_actionPerformed(ActionEvent e)
3012 public void showAllSeqs_actionPerformed(ActionEvent e)
3017 public void showAllColumns_actionPerformed(ActionEvent e)
3022 public void hideSelSequences_actionPerformed(ActionEvent e)
3027 public void hideSelColumns_actionPerformed(ActionEvent e)
3032 public void hiddenMarkers_actionPerformed(ActionEvent e)
3037 public void findPdbId_actionPerformed(ActionEvent e)
3042 public void enterPdbId_actionPerformed(ActionEvent e)
3047 public void pdbFile_actionPerformed(ActionEvent e)
3052 public void invertColSel_actionPerformed(ActionEvent e)
3057 public void tabSelectionChanged(int sel)
3062 public void tabbedPane_mousePressed(MouseEvent e)
3067 public void tabbedPane_focusGained(FocusEvent e)
3072 public void save_actionPerformed(ActionEvent e)
3077 public void reload_actionPerformed(ActionEvent e)
3082 public void newView_actionPerformed(ActionEvent e)
3087 public void textColour_actionPerformed(ActionEvent e)
3092 public void idRightAlign_actionPerformed(ActionEvent e)
3097 public void expandViews_actionPerformed(ActionEvent e)
3102 public void gatherViews_actionPerformed(ActionEvent e)
3107 public void buildTreeMenu()
3112 public void pageSetup_actionPerformed(ActionEvent e)
3117 public void alignmentProperties()
3122 protected void expand_newalign(ActionEvent e)
3124 // TODO Auto-generated method stub
3128 protected boolean isShowAutoCalculatedAbove()
3130 return showAutoCalculatedAbove;
3133 protected void setShowAutoCalculatedAbove(boolean showAutoCalculatedAbove)
3135 this.showAutoCalculatedAbove = showAutoCalculatedAbove;
3138 protected SequenceAnnotationOrder getAnnotationSortOrder()
3140 return annotationSortOrder;
3143 protected void setAnnotationSortOrder(
3144 SequenceAnnotationOrder annotationSortOrder)
3146 this.annotationSortOrder = annotationSortOrder;
3149 public Map<KeyStroke, JMenuItem> getAccelerators()
3151 return this.accelerators;
3155 * Returns the selected index of the tabbed pane, or -1 if none selected
3156 * (including the case where the tabbed pane has not been made visible).
3160 public int getTabIndex()
3162 return tabbedPane.getSelectedIndex();
3165 public JPanel getStatusPanel()
3171 * Sets a reference to the containing split frame. Also makes the 'toggle
3172 * split view' menu item visible and checked.
3176 public void setSplitFrame(SplitContainerI sf)
3178 this.splitFrame = sf;
3181 this.showComplementMenuItem.setVisible(true);
3182 this.showComplementMenuItem.setState(true);
3186 public SplitContainerI getSplitViewContainer()
3188 return this.splitFrame;
3191 protected void showComplement_actionPerformed(boolean complement)