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.JvOptionPane;
27 import jalview.gui.JvSwingUtils;
28 import jalview.gui.Preferences;
29 import jalview.io.FileFormats;
30 import jalview.schemes.ColourSchemeProperty;
31 import jalview.util.MessageManager;
33 import java.awt.BorderLayout;
34 import java.awt.Color;
35 import java.awt.GridLayout;
36 import java.awt.Toolkit;
37 import java.awt.event.ActionEvent;
38 import java.awt.event.ActionListener;
39 import java.awt.event.FocusAdapter;
40 import java.awt.event.FocusEvent;
41 import java.awt.event.KeyEvent;
42 import java.awt.event.MouseAdapter;
43 import java.awt.event.MouseEvent;
44 import java.util.HashMap;
47 import javax.swing.BorderFactory;
48 import javax.swing.ButtonGroup;
49 import javax.swing.JCheckBoxMenuItem;
50 import javax.swing.JInternalFrame;
51 import javax.swing.JLabel;
52 import javax.swing.JMenu;
53 import javax.swing.JMenuBar;
54 import javax.swing.JMenuItem;
55 import javax.swing.JPanel;
56 import javax.swing.JRadioButtonMenuItem;
57 import javax.swing.JTabbedPane;
58 import javax.swing.KeyStroke;
59 import javax.swing.event.ChangeEvent;
60 import javax.swing.event.MenuEvent;
61 import javax.swing.event.MenuListener;
63 public class GAlignFrame extends JInternalFrame
65 protected JMenuBar alignFrameMenuBar = new JMenuBar();
67 protected JMenuItem closeMenuItem = new JMenuItem();
69 protected JMenu colourMenu = new JMenu();
71 protected JMenu webService = new JMenu();
73 protected JMenuItem webServiceNoServices;
75 public JCheckBoxMenuItem viewBoxesMenuItem = new JCheckBoxMenuItem();
77 public JCheckBoxMenuItem viewTextMenuItem = new JCheckBoxMenuItem();
79 protected JMenu sortByAnnotScore = new JMenu();
81 public JLabel statusBar = new JLabel();
83 protected JMenu outputTextboxMenu = new JMenu();
85 protected JRadioButtonMenuItem clustalColour = new JRadioButtonMenuItem();
87 protected JRadioButtonMenuItem zappoColour = new JRadioButtonMenuItem();
89 protected JRadioButtonMenuItem taylorColour = new JRadioButtonMenuItem();
91 protected JRadioButtonMenuItem hydrophobicityColour = new JRadioButtonMenuItem();
93 protected JRadioButtonMenuItem helixColour = new JRadioButtonMenuItem();
95 protected JRadioButtonMenuItem strandColour = new JRadioButtonMenuItem();
97 protected JRadioButtonMenuItem turnColour = new JRadioButtonMenuItem();
99 protected JRadioButtonMenuItem buriedColour = new JRadioButtonMenuItem();
101 protected JRadioButtonMenuItem userDefinedColour = new JRadioButtonMenuItem();
103 protected JRadioButtonMenuItem PIDColour = new JRadioButtonMenuItem();
105 protected JRadioButtonMenuItem BLOSUM62Colour = new JRadioButtonMenuItem();
107 protected JRadioButtonMenuItem nucleotideColour = new JRadioButtonMenuItem();
109 protected JRadioButtonMenuItem purinePyrimidineColour = new JRadioButtonMenuItem();
111 protected JRadioButtonMenuItem RNAInteractionColour = new JRadioButtonMenuItem();
113 // protected JRadioButtonMenuItem covariationColour = new
114 // JRadioButtonMenuItem();
116 protected JRadioButtonMenuItem tcoffeeColour = new JRadioButtonMenuItem();
118 public JCheckBoxMenuItem annotationPanelMenuItem = new JCheckBoxMenuItem();
120 public JCheckBoxMenuItem colourTextMenuItem = new JCheckBoxMenuItem();
122 public JCheckBoxMenuItem showNonconservedMenuItem = new JCheckBoxMenuItem();
124 protected JMenuItem undoMenuItem = new JMenuItem();
126 protected JMenuItem redoMenuItem = new JMenuItem();
128 public JCheckBoxMenuItem conservationMenuItem = new JCheckBoxMenuItem();
130 JRadioButtonMenuItem noColourmenuItem = new JRadioButtonMenuItem();
132 public JCheckBoxMenuItem wrapMenuItem = new JCheckBoxMenuItem();
134 public JCheckBoxMenuItem renderGapsMenuItem = new JCheckBoxMenuItem();
136 public JCheckBoxMenuItem abovePIDThreshold = new JCheckBoxMenuItem();
138 public JCheckBoxMenuItem showSeqFeatures = new JCheckBoxMenuItem();
140 JMenuItem copy = new JMenuItem();
142 JMenuItem cut = new JMenuItem();
144 JMenu pasteMenu = new JMenu();
146 public JCheckBoxMenuItem applyToAllGroups = new JCheckBoxMenuItem();
148 public JCheckBoxMenuItem seqLimits = new JCheckBoxMenuItem();
150 public JCheckBoxMenuItem scaleAbove = new JCheckBoxMenuItem();
152 public JCheckBoxMenuItem scaleLeft = new JCheckBoxMenuItem();
154 public JCheckBoxMenuItem scaleRight = new JCheckBoxMenuItem();
156 protected JMenuItem modifyConservation = new JMenuItem();
158 protected JMenuItem modifyPID = new JMenuItem();
160 protected JMenu sortByTreeMenu = new JMenu();
162 protected JMenu sort = new JMenu();
164 protected JMenu calculateTree = new JMenu();
166 protected JCheckBoxMenuItem padGapsMenuitem = new JCheckBoxMenuItem();
168 protected JCheckBoxMenuItem showNpFeatsMenuitem = new JCheckBoxMenuItem();
170 protected JCheckBoxMenuItem showDbRefsMenuitem = new JCheckBoxMenuItem();
172 protected ButtonGroup colours = new ButtonGroup();
174 protected JMenuItem showTranslation = new JMenuItem();
176 protected JMenuItem showReverse = new JMenuItem();
178 protected JMenuItem showReverseComplement = new JMenuItem();
180 protected JMenu showProducts = new JMenu();
182 protected JMenuItem runGroovy = new JMenuItem();
184 protected JMenuItem rnahelicesColour = new JMenuItem();
186 protected JCheckBoxMenuItem autoCalculate = new JCheckBoxMenuItem();
188 protected JCheckBoxMenuItem sortByTree = new JCheckBoxMenuItem();
190 protected JCheckBoxMenuItem listenToViewSelections = new JCheckBoxMenuItem();
192 protected JPanel statusPanel = new JPanel();
194 protected JMenuItem showAllSeqAnnotations = new JMenuItem();
196 protected JMenuItem hideAllSeqAnnotations = new JMenuItem();
198 protected JMenuItem showAllAlAnnotations = new JMenuItem();
200 protected JMenuItem hideAllAlAnnotations = new JMenuItem();
202 protected JCheckBoxMenuItem showComplementMenuItem = new JCheckBoxMenuItem();
204 protected JCheckBoxMenuItem hiddenMarkers = new JCheckBoxMenuItem();
206 protected JTabbedPane tabbedPane = new JTabbedPane();
208 protected JMenuItem reload = new JMenuItem();
210 protected JMenu formatMenu = new JMenu();
212 protected JCheckBoxMenuItem idRightAlign = new JCheckBoxMenuItem();
214 protected JCheckBoxMenuItem centreColumnLabelsMenuItem = new JCheckBoxMenuItem();
216 protected JCheckBoxMenuItem followHighlightMenuItem = new JCheckBoxMenuItem();
218 protected JMenuItem gatherViews = new JMenuItem();
220 protected JMenuItem expandViews = new JMenuItem();
222 protected JCheckBoxMenuItem showGroupConsensus = new JCheckBoxMenuItem();
224 protected JCheckBoxMenuItem showGroupConservation = new JCheckBoxMenuItem();
226 protected JCheckBoxMenuItem showConsensusHistogram = new JCheckBoxMenuItem();
228 protected JCheckBoxMenuItem showSequenceLogo = new JCheckBoxMenuItem();
230 protected JCheckBoxMenuItem normaliseSequenceLogo = new JCheckBoxMenuItem();
232 protected JCheckBoxMenuItem applyAutoAnnotationSettings = new JCheckBoxMenuItem();
234 private SequenceAnnotationOrder annotationSortOrder;
236 private boolean showAutoCalculatedAbove = false;
238 private Map<KeyStroke, JMenuItem> accelerators = new HashMap<KeyStroke, JMenuItem>();
240 private SplitContainerI splitFrame;
247 setJMenuBar(alignFrameMenuBar);
249 // dynamically fill save as menu with available formats
250 for (String ff : FileFormats.getInstance().getWritableFormats(true))
252 JMenuItem item = new JMenuItem(ff);
254 item.addActionListener(new ActionListener()
257 public void actionPerformed(ActionEvent e)
259 outputText_actionPerformed(e);
263 outputTextboxMenu.add(item);
265 } catch (Exception e)
267 System.err.println(e.toString());
270 if (!jalview.util.Platform.isAMac())
272 closeMenuItem.setMnemonic('C');
273 outputTextboxMenu.setMnemonic('T');
274 undoMenuItem.setMnemonic('Z');
275 redoMenuItem.setMnemonic('0');
276 copy.setMnemonic('C');
277 cut.setMnemonic('U');
278 pasteMenu.setMnemonic('P');
279 reload.setMnemonic('R');
282 if (jalview.gui.UserDefinedColours.getUserColourSchemes() != null)
284 java.util.Enumeration userColours = jalview.gui.UserDefinedColours
285 .getUserColourSchemes().keys();
287 while (userColours.hasMoreElements())
289 final JRadioButtonMenuItem radioItem = new JRadioButtonMenuItem(
290 userColours.nextElement().toString());
291 radioItem.setName("USER_DEFINED");
292 radioItem.addMouseListener(new MouseAdapter()
295 public void mousePressed(MouseEvent evt)
297 if (evt.isPopupTrigger()) // Mac
299 offerRemoval(radioItem);
304 public void mouseReleased(MouseEvent evt)
306 if (evt.isPopupTrigger()) // Windows
308 offerRemoval(radioItem);
315 void offerRemoval(final JRadioButtonMenuItem radioItem)
317 radioItem.removeActionListener(radioItem.getActionListeners()[0]);
319 int option = JvOptionPane.showInternalConfirmDialog(
320 jalview.gui.Desktop.desktop, MessageManager
321 .getString("label.remove_from_default_list"),
323 .getString("label.remove_user_defined_colour"),
324 JvOptionPane.YES_NO_OPTION);
325 if (option == JvOptionPane.YES_OPTION)
327 jalview.gui.UserDefinedColours
328 .removeColourFromDefaults(radioItem.getText());
329 colourMenu.remove(radioItem);
333 radioItem.addActionListener(new ActionListener()
336 public void actionPerformed(ActionEvent evt)
338 userDefinedColour_actionPerformed(evt);
344 radioItem.addActionListener(new ActionListener()
347 public void actionPerformed(ActionEvent evt)
349 userDefinedColour_actionPerformed(evt);
352 colourMenu.insert(radioItem, 15);
353 colours.add(radioItem);
356 colours.add(noColourmenuItem);
357 colours.add(clustalColour);
358 colours.add(zappoColour);
359 colours.add(taylorColour);
360 colours.add(hydrophobicityColour);
361 colours.add(helixColour);
362 colours.add(strandColour);
363 colours.add(turnColour);
364 colours.add(buriedColour);
365 colours.add(userDefinedColour);
366 colours.add(PIDColour);
367 colours.add(BLOSUM62Colour);
368 colours.add(nucleotideColour);
369 colours.add(purinePyrimidineColour);
370 // colours.add(covariationColour);
371 colours.add(tcoffeeColour);
372 colours.add(RNAInteractionColour);
373 setColourSelected(jalview.bin.Cache.getDefault(
374 Preferences.DEFAULT_COLOUR, "None"));
377 public void setColourSelected(String defaultColour)
380 if (defaultColour != null)
382 int index = ColourSchemeProperty
383 .getColourIndexFromName(defaultColour);
387 case ColourSchemeProperty.CLUSTAL:
388 clustalColour.setSelected(true);
392 case ColourSchemeProperty.BLOSUM:
393 BLOSUM62Colour.setSelected(true);
397 case ColourSchemeProperty.PID:
398 PIDColour.setSelected(true);
402 case ColourSchemeProperty.ZAPPO:
403 zappoColour.setSelected(true);
407 case ColourSchemeProperty.TAYLOR:
408 taylorColour.setSelected(true);
411 case ColourSchemeProperty.HYDROPHOBIC:
412 hydrophobicityColour.setSelected(true);
416 case ColourSchemeProperty.HELIX:
417 helixColour.setSelected(true);
421 case ColourSchemeProperty.STRAND:
422 strandColour.setSelected(true);
426 case ColourSchemeProperty.TURN:
427 turnColour.setSelected(true);
431 case ColourSchemeProperty.BURIED:
432 buriedColour.setSelected(true);
436 case ColourSchemeProperty.NUCLEOTIDE:
437 nucleotideColour.setSelected(true);
441 case ColourSchemeProperty.TCOFFEE:
442 tcoffeeColour.setSelected(true);
445 case ColourSchemeProperty.PURINEPYRIMIDINE:
446 purinePyrimidineColour.setSelected(true);
450 case ColourSchemeProperty.RNAINTERACTION:
451 RNAInteractionColour.setSelected(true);
455 * case ColourSchemeProperty.COVARIATION:
456 * covariationColour.setSelected(true);
460 case ColourSchemeProperty.USER_DEFINED:
461 userDefinedColour.setSelected(true);
464 case ColourSchemeProperty.NONE:
466 noColourmenuItem.setSelected(true);
474 private void jbInit() throws Exception
476 JMenuItem saveAs = new JMenuItem(
477 MessageManager.getString("action.save_as"));
478 ActionListener al = new ActionListener()
481 public void actionPerformed(ActionEvent e)
483 saveAs_actionPerformed(e);
486 KeyStroke keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_S, Toolkit
487 .getDefaultToolkit().getMenuShortcutKeyMask()
488 | KeyEvent.SHIFT_MASK, false);
489 addMenuActionAndAccelerator(keyStroke, saveAs, al);
491 closeMenuItem.setText(MessageManager.getString("action.close"));
492 keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_W, Toolkit
493 .getDefaultToolkit().getMenuShortcutKeyMask(), false);
494 al = new ActionListener()
497 public void actionPerformed(ActionEvent e)
499 closeMenuItem_actionPerformed(false);
502 addMenuActionAndAccelerator(keyStroke, closeMenuItem, al);
504 JMenu editMenu = new JMenu(MessageManager.getString("action.edit"));
505 JMenu viewMenu = new JMenu(MessageManager.getString("action.view"));
506 JMenu annotationsMenu = new JMenu(
507 MessageManager.getString("action.annotations"));
508 JMenu showMenu = new JMenu(MessageManager.getString("action.show"));
509 colourMenu.setText(MessageManager.getString("action.colour"));
510 JMenu calculateMenu = new JMenu(
511 MessageManager.getString("action.calculate"));
512 webService.setText(MessageManager.getString("action.web_service"));
513 JMenuItem selectAllSequenceMenuItem = new JMenuItem(
514 MessageManager.getString("action.select_all"));
515 keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_A, Toolkit
516 .getDefaultToolkit().getMenuShortcutKeyMask(), false);
517 al = new ActionListener()
520 public void actionPerformed(ActionEvent e)
522 selectAllSequenceMenuItem_actionPerformed(e);
525 addMenuActionAndAccelerator(keyStroke, selectAllSequenceMenuItem, al);
527 JMenuItem deselectAllSequenceMenuItem = new JMenuItem(
528 MessageManager.getString("action.deselect_all"));
529 keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_ESCAPE, 0, false);
530 al = new ActionListener()
533 public void actionPerformed(ActionEvent e)
535 deselectAllSequenceMenuItem_actionPerformed(e);
538 addMenuActionAndAccelerator(keyStroke, deselectAllSequenceMenuItem, al);
540 JMenuItem invertSequenceMenuItem = new JMenuItem(
541 MessageManager.getString("action.invert_sequence_selection"));
542 keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_I, Toolkit
543 .getDefaultToolkit().getMenuShortcutKeyMask(), false);
544 al = new ActionListener()
547 public void actionPerformed(ActionEvent e)
549 invertSequenceMenuItem_actionPerformed(e);
552 addMenuActionAndAccelerator(keyStroke, invertSequenceMenuItem, al);
554 JMenuItem grpsFromSelection = new JMenuItem(
555 MessageManager.getString("action.make_groups_selection"));
556 grpsFromSelection.addActionListener(new ActionListener()
559 public void actionPerformed(ActionEvent e)
561 makeGrpsFromSelection_actionPerformed(e);
564 JMenuItem expandAlignment = new JMenuItem(
565 MessageManager.getString("action.view_flanking_regions"));
566 expandAlignment.setToolTipText(MessageManager
567 .getString("label.view_flanking_regions"));
568 expandAlignment.addActionListener(new ActionListener()
571 public void actionPerformed(ActionEvent e)
576 JMenuItem remove2LeftMenuItem = new JMenuItem(
577 MessageManager.getString("action.remove_left"));
578 keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_L, Toolkit
579 .getDefaultToolkit().getMenuShortcutKeyMask(), false);
580 al = new ActionListener()
583 public void actionPerformed(ActionEvent e)
585 remove2LeftMenuItem_actionPerformed(e);
588 addMenuActionAndAccelerator(keyStroke, remove2LeftMenuItem, al);
590 JMenuItem remove2RightMenuItem = new JMenuItem(
591 MessageManager.getString("action.remove_right"));
592 keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_R, Toolkit
593 .getDefaultToolkit().getMenuShortcutKeyMask(), false);
594 al = new ActionListener()
597 public void actionPerformed(ActionEvent e)
599 remove2RightMenuItem_actionPerformed(e);
602 addMenuActionAndAccelerator(keyStroke, remove2RightMenuItem, al);
604 JMenuItem removeGappedColumnMenuItem = new JMenuItem(
605 MessageManager.getString("action.remove_empty_columns"));
606 keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_E, Toolkit
607 .getDefaultToolkit().getMenuShortcutKeyMask(), false);
608 al = new ActionListener()
611 public void actionPerformed(ActionEvent e)
613 removeGappedColumnMenuItem_actionPerformed(e);
616 addMenuActionAndAccelerator(keyStroke, removeGappedColumnMenuItem, al);
618 JMenuItem removeAllGapsMenuItem = new JMenuItem(
619 MessageManager.getString("action.remove_all_gaps"));
620 keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_E, Toolkit
621 .getDefaultToolkit().getMenuShortcutKeyMask()
622 | KeyEvent.SHIFT_MASK, false);
623 al = new ActionListener()
626 public void actionPerformed(ActionEvent e)
628 removeAllGapsMenuItem_actionPerformed(e);
631 addMenuActionAndAccelerator(keyStroke, removeAllGapsMenuItem, al);
633 JMenuItem justifyLeftMenuItem = new JMenuItem(
634 MessageManager.getString("action.left_justify_alignment"));
635 justifyLeftMenuItem.addActionListener(new ActionListener()
638 public void actionPerformed(ActionEvent e)
640 justifyLeftMenuItem_actionPerformed(e);
643 JMenuItem justifyRightMenuItem = new JMenuItem(
644 MessageManager.getString("action.right_justify_alignment"));
645 justifyRightMenuItem.addActionListener(new ActionListener()
648 public void actionPerformed(ActionEvent e)
650 justifyRightMenuItem_actionPerformed(e);
653 viewBoxesMenuItem.setText(MessageManager.getString("action.boxes"));
654 viewBoxesMenuItem.setState(true);
655 viewBoxesMenuItem.addActionListener(new ActionListener()
658 public void actionPerformed(ActionEvent e)
660 viewBoxesMenuItem_actionPerformed(e);
663 viewTextMenuItem.setText(MessageManager.getString("action.text"));
664 viewTextMenuItem.setState(true);
665 viewTextMenuItem.addActionListener(new ActionListener()
668 public void actionPerformed(ActionEvent e)
670 viewTextMenuItem_actionPerformed(e);
673 showNonconservedMenuItem.setText(MessageManager
674 .getString("label.show_non_conversed"));
675 showNonconservedMenuItem.setState(false);
676 showNonconservedMenuItem.addActionListener(new ActionListener()
679 public void actionPerformed(ActionEvent e)
681 showUnconservedMenuItem_actionPerformed(e);
684 JMenuItem sortPairwiseMenuItem = new JMenuItem(
685 MessageManager.getString("action.by_pairwise_id"));
686 sortPairwiseMenuItem.addActionListener(new ActionListener()
689 public void actionPerformed(ActionEvent e)
691 sortPairwiseMenuItem_actionPerformed(e);
694 JMenuItem sortIDMenuItem = new JMenuItem(
695 MessageManager.getString("action.by_id"));
696 sortIDMenuItem.addActionListener(new ActionListener()
699 public void actionPerformed(ActionEvent e)
701 sortIDMenuItem_actionPerformed(e);
704 JMenuItem sortLengthMenuItem = new JMenuItem(
705 MessageManager.getString("action.by_length"));
706 sortLengthMenuItem.addActionListener(new ActionListener()
709 public void actionPerformed(ActionEvent e)
711 sortLengthMenuItem_actionPerformed(e);
714 JMenuItem sortGroupMenuItem = new JMenuItem(
715 MessageManager.getString("action.by_group"));
716 sortGroupMenuItem.addActionListener(new ActionListener()
719 public void actionPerformed(ActionEvent e)
721 sortGroupMenuItem_actionPerformed(e);
725 JMenuItem removeRedundancyMenuItem = new JMenuItem(
726 MessageManager.getString("action.remove_redundancy"));
727 keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_D, Toolkit
728 .getDefaultToolkit().getMenuShortcutKeyMask(), false);
729 al = new ActionListener()
732 public void actionPerformed(ActionEvent e)
734 removeRedundancyMenuItem_actionPerformed(e);
737 addMenuActionAndAccelerator(keyStroke, removeRedundancyMenuItem, al);
739 JMenuItem pairwiseAlignmentMenuItem = new JMenuItem(
740 MessageManager.getString("action.pairwise_alignment"));
741 pairwiseAlignmentMenuItem.addActionListener(new ActionListener()
744 public void actionPerformed(ActionEvent e)
746 pairwiseAlignmentMenuItem_actionPerformed(e);
749 JMenuItem PCAMenuItem = new JMenuItem(
750 MessageManager.getString("label.principal_component_analysis"));
751 PCAMenuItem.addActionListener(new ActionListener()
754 public void actionPerformed(ActionEvent e)
756 PCAMenuItem_actionPerformed(e);
759 JMenuItem averageDistanceTreeMenuItem = new JMenuItem(
760 MessageManager.getString("label.average_distance_identity"));
761 averageDistanceTreeMenuItem.addActionListener(new ActionListener()
764 public void actionPerformed(ActionEvent e)
766 averageDistanceTreeMenuItem_actionPerformed(e);
769 JMenuItem neighbourTreeMenuItem = new JMenuItem(
770 MessageManager.getString("label.neighbour_joining_identity"));
771 neighbourTreeMenuItem.addActionListener(new ActionListener()
774 public void actionPerformed(ActionEvent e)
776 neighbourTreeMenuItem_actionPerformed(e);
780 this.getContentPane().setLayout(new BorderLayout());
781 alignFrameMenuBar.setFont(new java.awt.Font("Verdana", 0, 11));
782 statusBar.setBackground(Color.white);
783 statusBar.setFont(new java.awt.Font("Verdana", 0, 11));
784 statusBar.setBorder(BorderFactory.createLineBorder(Color.black));
785 statusBar.setText(MessageManager.getString("label.status_bar"));
786 outputTextboxMenu.setText(MessageManager
787 .getString("label.out_to_textbox"));
788 clustalColour.setText(MessageManager.getString("label.clustalx"));
789 clustalColour.addActionListener(new ActionListener()
792 public void actionPerformed(ActionEvent e)
794 clustalColour_actionPerformed(e);
797 zappoColour.setText(MessageManager.getString("label.zappo"));
798 zappoColour.addActionListener(new ActionListener()
801 public void actionPerformed(ActionEvent e)
803 zappoColour_actionPerformed(e);
806 taylorColour.setText(MessageManager.getString("label.taylor"));
807 taylorColour.addActionListener(new ActionListener()
810 public void actionPerformed(ActionEvent e)
812 taylorColour_actionPerformed(e);
815 hydrophobicityColour.setText(MessageManager
816 .getString("label.hydrophobicity"));
817 hydrophobicityColour.addActionListener(new ActionListener()
820 public void actionPerformed(ActionEvent e)
822 hydrophobicityColour_actionPerformed(e);
825 helixColour.setText(MessageManager.getString("label.helix_propensity"));
826 helixColour.addActionListener(new ActionListener()
829 public void actionPerformed(ActionEvent e)
831 helixColour_actionPerformed(e);
834 strandColour.setText(MessageManager
835 .getString("label.strand_propensity"));
836 strandColour.addActionListener(new ActionListener()
839 public void actionPerformed(ActionEvent e)
841 strandColour_actionPerformed(e);
844 turnColour.setText(MessageManager.getString("label.turn_propensity"));
845 turnColour.addActionListener(new ActionListener()
848 public void actionPerformed(ActionEvent e)
850 turnColour_actionPerformed(e);
853 buriedColour.setText(MessageManager.getString("label.buried_index"));
854 buriedColour.addActionListener(new ActionListener()
857 public void actionPerformed(ActionEvent e)
859 buriedColour_actionPerformed(e);
862 userDefinedColour.setText(MessageManager
863 .getString("action.user_defined"));
864 userDefinedColour.addActionListener(new ActionListener()
867 public void actionPerformed(ActionEvent e)
869 userDefinedColour_actionPerformed(e);
873 .setText(MessageManager.getString("label.percentage_identity"));
874 PIDColour.addActionListener(new ActionListener()
877 public void actionPerformed(ActionEvent e)
879 PIDColour_actionPerformed(e);
883 .setText(MessageManager.getString("label.blosum62_score"));
884 BLOSUM62Colour.addActionListener(new ActionListener()
887 public void actionPerformed(ActionEvent e)
889 BLOSUM62Colour_actionPerformed(e);
892 nucleotideColour.setText(MessageManager.getString("label.nucleotide"));
893 nucleotideColour.addActionListener(new ActionListener()
896 public void actionPerformed(ActionEvent e)
898 nucleotideColour_actionPerformed(e);
902 purinePyrimidineColour.setText(MessageManager
903 .getString("label.purine_pyrimidine"));
904 purinePyrimidineColour.addActionListener(new ActionListener()
907 public void actionPerformed(ActionEvent e)
909 purinePyrimidineColour_actionPerformed(e);
913 RNAInteractionColour.setText("RNA Interaction type");
914 RNAInteractionColour.addActionListener(new ActionListener()
917 public void actionPerformed(ActionEvent e)
919 RNAInteractionColour_actionPerformed(e);
923 * covariationColour.setText("Covariation");
924 * covariationColour.addActionListener(new ActionListener() { public void
925 * actionPerformed(ActionEvent e) { covariationColour_actionPerformed(e); }
929 JMenuItem avDistanceTreeBlosumMenuItem = new JMenuItem(
930 MessageManager.getString("label.average_distance_bloslum62"));
931 avDistanceTreeBlosumMenuItem.addActionListener(new ActionListener()
934 public void actionPerformed(ActionEvent e)
936 avTreeBlosumMenuItem_actionPerformed(e);
939 JMenuItem njTreeBlosumMenuItem = new JMenuItem(
940 MessageManager.getString("label.neighbour_blosum62"));
941 njTreeBlosumMenuItem.addActionListener(new ActionListener()
944 public void actionPerformed(ActionEvent e)
946 njTreeBlosumMenuItem_actionPerformed(e);
949 annotationPanelMenuItem.setActionCommand("");
950 annotationPanelMenuItem.setText(MessageManager
951 .getString("label.show_annotations"));
952 annotationPanelMenuItem.setState(Cache.getDefault("SHOW_ANNOTATIONS",
954 annotationPanelMenuItem.addActionListener(new ActionListener()
957 public void actionPerformed(ActionEvent e)
959 annotationPanelMenuItem_actionPerformed(e);
962 showAllAlAnnotations.setText(MessageManager
963 .getString("label.show_all_al_annotations"));
964 final boolean isAnnotationPanelShown = annotationPanelMenuItem
966 showAllAlAnnotations.setEnabled(isAnnotationPanelShown);
967 showAllAlAnnotations.addActionListener(new ActionListener()
970 public void actionPerformed(ActionEvent e)
972 showAllAnnotations_actionPerformed(false, true);
975 hideAllAlAnnotations.setText(MessageManager
976 .getString("label.hide_all_al_annotations"));
977 hideAllAlAnnotations.setEnabled(isAnnotationPanelShown);
978 hideAllAlAnnotations.addActionListener(new ActionListener()
981 public void actionPerformed(ActionEvent e)
983 hideAllAnnotations_actionPerformed(false, true);
986 showAllSeqAnnotations.setText(MessageManager
987 .getString("label.show_all_seq_annotations"));
988 showAllSeqAnnotations.setEnabled(isAnnotationPanelShown);
989 showAllSeqAnnotations.addActionListener(new ActionListener()
992 public void actionPerformed(ActionEvent e)
994 showAllAnnotations_actionPerformed(true, false);
997 hideAllSeqAnnotations.setText(MessageManager
998 .getString("label.hide_all_seq_annotations"));
999 hideAllSeqAnnotations.setEnabled(isAnnotationPanelShown);
1000 hideAllSeqAnnotations.addActionListener(new ActionListener()
1003 public void actionPerformed(ActionEvent e)
1005 hideAllAnnotations_actionPerformed(true, false);
1008 SequenceAnnotationOrder sortAnnotationsBy = SequenceAnnotationOrder
1009 .valueOf(Cache.getDefault(Preferences.SORT_ANNOTATIONS,
1010 SequenceAnnotationOrder.NONE.name()));
1011 final JCheckBoxMenuItem sortAnnBySequence = new JCheckBoxMenuItem(
1012 MessageManager.getString("label.sort_annotations_by_sequence"));
1013 final JCheckBoxMenuItem sortAnnByLabel = new JCheckBoxMenuItem(
1014 MessageManager.getString("label.sort_annotations_by_label"));
1017 .setSelected(sortAnnotationsBy == SequenceAnnotationOrder.SEQUENCE_AND_LABEL);
1018 sortAnnBySequence.addActionListener(new ActionListener()
1021 public void actionPerformed(ActionEvent e)
1023 boolean newState = sortAnnBySequence.getState();
1024 sortAnnByLabel.setSelected(false);
1025 setAnnotationSortOrder(newState ? SequenceAnnotationOrder.SEQUENCE_AND_LABEL
1026 : SequenceAnnotationOrder.NONE);
1027 sortAnnotations_actionPerformed();
1031 .setSelected(sortAnnotationsBy == SequenceAnnotationOrder.LABEL_AND_SEQUENCE);
1032 sortAnnByLabel.addActionListener(new ActionListener()
1035 public void actionPerformed(ActionEvent e)
1037 boolean newState = sortAnnByLabel.getState();
1038 sortAnnBySequence.setSelected(false);
1039 setAnnotationSortOrder(newState ? SequenceAnnotationOrder.LABEL_AND_SEQUENCE
1040 : SequenceAnnotationOrder.NONE);
1041 sortAnnotations_actionPerformed();
1044 colourTextMenuItem.setText(MessageManager
1045 .getString("label.colour_text"));
1046 colourTextMenuItem.addActionListener(new ActionListener()
1049 public void actionPerformed(ActionEvent e)
1051 colourTextMenuItem_actionPerformed(e);
1055 JMenuItem htmlMenuItem = new JMenuItem(
1056 MessageManager.getString("label.html"));
1057 htmlMenuItem.addActionListener(new ActionListener()
1060 public void actionPerformed(ActionEvent e)
1062 htmlMenuItem_actionPerformed(e);
1066 JMenuItem createBioJS = new JMenuItem(
1067 MessageManager.getString("label.biojs_html_export"));
1068 createBioJS.addActionListener(new java.awt.event.ActionListener()
1071 public void actionPerformed(ActionEvent e)
1073 bioJSMenuItem_actionPerformed(e);
1077 JMenuItem overviewMenuItem = new JMenuItem(
1078 MessageManager.getString("label.overview_window"));
1079 overviewMenuItem.addActionListener(new ActionListener()
1082 public void actionPerformed(ActionEvent e)
1084 overviewMenuItem_actionPerformed(e);
1088 undoMenuItem.setEnabled(false);
1089 undoMenuItem.setText(MessageManager.getString("action.undo"));
1090 keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_Z, Toolkit
1091 .getDefaultToolkit().getMenuShortcutKeyMask(), false);
1092 al = new ActionListener()
1095 public void actionPerformed(ActionEvent e)
1097 undoMenuItem_actionPerformed(e);
1100 addMenuActionAndAccelerator(keyStroke, undoMenuItem, al);
1102 redoMenuItem.setEnabled(false);
1103 redoMenuItem.setText(MessageManager.getString("action.redo"));
1104 keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_Y, Toolkit
1105 .getDefaultToolkit().getMenuShortcutKeyMask(), false);
1106 al = new ActionListener()
1109 public void actionPerformed(ActionEvent e)
1111 redoMenuItem_actionPerformed(e);
1114 addMenuActionAndAccelerator(keyStroke, redoMenuItem, al);
1116 conservationMenuItem.setText(MessageManager
1117 .getString("action.by_conservation"));
1118 conservationMenuItem.addActionListener(new ActionListener()
1121 public void actionPerformed(ActionEvent e)
1123 conservationMenuItem_actionPerformed();
1126 noColourmenuItem.setText(MessageManager.getString("label.none"));
1127 noColourmenuItem.addActionListener(new ActionListener()
1130 public void actionPerformed(ActionEvent e)
1132 noColourmenuItem_actionPerformed(e);
1135 wrapMenuItem.setText(MessageManager.getString("label.wrap"));
1136 wrapMenuItem.addActionListener(new ActionListener()
1139 public void actionPerformed(ActionEvent e)
1141 wrapMenuItem_actionPerformed(e);
1145 JMenuItem printMenuItem = new JMenuItem(
1146 MessageManager.getString("action.print"));
1147 keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_P, Toolkit
1148 .getDefaultToolkit().getMenuShortcutKeyMask(), false);
1149 al = new ActionListener()
1152 public void actionPerformed(ActionEvent e)
1154 printMenuItem_actionPerformed(e);
1157 addMenuActionAndAccelerator(keyStroke, printMenuItem, al);
1160 .setText(MessageManager.getString("action.show_gaps"));
1161 renderGapsMenuItem.setState(true);
1162 renderGapsMenuItem.addActionListener(new ActionListener()
1165 public void actionPerformed(ActionEvent e)
1167 renderGapsMenuItem_actionPerformed(e);
1171 JMenuItem findMenuItem = new JMenuItem(
1172 MessageManager.getString("action.find"));
1173 keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_F, Toolkit
1174 .getDefaultToolkit().getMenuShortcutKeyMask(), false);
1175 findMenuItem.setToolTipText(JvSwingUtils.wrapTooltip(true,
1176 MessageManager.getString("label.find_tip")));
1177 al = new ActionListener()
1180 public void actionPerformed(ActionEvent e)
1182 findMenuItem_actionPerformed(e);
1185 addMenuActionAndAccelerator(keyStroke, findMenuItem, al);
1187 abovePIDThreshold.setText(MessageManager
1188 .getString("label.above_identity_threshold"));
1189 abovePIDThreshold.addActionListener(new ActionListener()
1192 public void actionPerformed(ActionEvent e)
1194 abovePIDThreshold_actionPerformed();
1197 showSeqFeatures.setText(MessageManager
1198 .getString("label.show_sequence_features"));
1199 showSeqFeatures.addActionListener(new ActionListener()
1202 public void actionPerformed(ActionEvent actionEvent)
1204 showSeqFeatures_actionPerformed(actionEvent);
1208 * showSeqFeaturesHeight.setText("Vary Sequence Feature Height");
1209 * showSeqFeaturesHeight.addActionListener(new ActionListener() { public
1210 * void actionPerformed(ActionEvent actionEvent) {
1211 * showSeqFeaturesHeight_actionPerformed(actionEvent); } });
1213 showDbRefsMenuitem.setText(MessageManager
1214 .getString("label.show_database_refs"));
1215 showDbRefsMenuitem.addActionListener(new ActionListener()
1219 public void actionPerformed(ActionEvent e)
1221 showDbRefs_actionPerformed(e);
1225 showNpFeatsMenuitem.setText(MessageManager
1226 .getString("label.show_non_positional_features"));
1227 showNpFeatsMenuitem.addActionListener(new ActionListener()
1231 public void actionPerformed(ActionEvent e)
1233 showNpFeats_actionPerformed(e);
1237 showGroupConservation.setText(MessageManager
1238 .getString("label.group_conservation"));
1239 showGroupConservation.addActionListener(new ActionListener()
1243 public void actionPerformed(ActionEvent e)
1245 showGroupConservation_actionPerformed(e);
1250 showGroupConsensus.setText(MessageManager
1251 .getString("label.group_consensus"));
1252 showGroupConsensus.addActionListener(new ActionListener()
1256 public void actionPerformed(ActionEvent e)
1258 showGroupConsensus_actionPerformed(e);
1262 showConsensusHistogram.setText(MessageManager
1263 .getString("label.show_consensus_histogram"));
1264 showConsensusHistogram.addActionListener(new ActionListener()
1268 public void actionPerformed(ActionEvent e)
1270 showConsensusHistogram_actionPerformed(e);
1274 showSequenceLogo.setText(MessageManager
1275 .getString("label.show_consensus_logo"));
1276 showSequenceLogo.addActionListener(new ActionListener()
1280 public void actionPerformed(ActionEvent e)
1282 showSequenceLogo_actionPerformed(e);
1286 normaliseSequenceLogo.setText(MessageManager
1287 .getString("label.norm_consensus_logo"));
1288 normaliseSequenceLogo.addActionListener(new ActionListener()
1292 public void actionPerformed(ActionEvent e)
1294 normaliseSequenceLogo_actionPerformed(e);
1298 applyAutoAnnotationSettings.setText(MessageManager
1299 .getString("label.apply_all_groups"));
1300 applyAutoAnnotationSettings.setState(false);
1301 applyAutoAnnotationSettings.setVisible(true);
1302 applyAutoAnnotationSettings.addActionListener(new ActionListener()
1305 public void actionPerformed(ActionEvent e)
1307 applyAutoAnnotationSettings_actionPerformed(e);
1311 ButtonGroup buttonGroup = new ButtonGroup();
1312 final JRadioButtonMenuItem showAutoFirst = new JRadioButtonMenuItem(
1313 MessageManager.getString("label.show_first"));
1314 final JRadioButtonMenuItem showAutoLast = new JRadioButtonMenuItem(
1315 MessageManager.getString("label.show_last"));
1316 buttonGroup.add(showAutoFirst);
1317 buttonGroup.add(showAutoLast);
1318 final boolean autoFirst = Cache.getDefault(
1319 Preferences.SHOW_AUTOCALC_ABOVE, false);
1320 showAutoFirst.setSelected(autoFirst);
1321 setShowAutoCalculatedAbove(autoFirst);
1322 showAutoFirst.addActionListener(new ActionListener()
1325 public void actionPerformed(ActionEvent e)
1327 setShowAutoCalculatedAbove(showAutoFirst.isSelected());
1328 sortAnnotations_actionPerformed();
1331 showAutoLast.setSelected(!showAutoFirst.isSelected());
1332 showAutoLast.addActionListener(new ActionListener()
1335 public void actionPerformed(ActionEvent e)
1337 setShowAutoCalculatedAbove(!showAutoLast.isSelected());
1338 sortAnnotations_actionPerformed();
1342 nucleotideColour.setText(MessageManager.getString("label.nucleotide"));
1343 nucleotideColour.addActionListener(new ActionListener()
1346 public void actionPerformed(ActionEvent e)
1348 nucleotideColour_actionPerformed(e);
1352 tcoffeeColour.setText(MessageManager.getString("label.tcoffee_scores"));
1353 tcoffeeColour.setEnabled(false);
1354 tcoffeeColour.addActionListener(new ActionListener()
1358 public void actionPerformed(ActionEvent e)
1360 tcoffeeColorScheme_actionPerformed(e);
1364 JMenuItem deleteGroups = new JMenuItem(
1365 MessageManager.getString("action.undefine_groups"));
1366 keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_U, Toolkit
1367 .getDefaultToolkit().getMenuShortcutKeyMask(), false);
1368 al = new ActionListener()
1371 public void actionPerformed(ActionEvent e)
1373 deleteGroups_actionPerformed(e);
1376 addMenuActionAndAccelerator(keyStroke, deleteGroups, al);
1378 JMenuItem createGroup = new JMenuItem(
1379 MessageManager.getString("action.create_groups"));
1380 keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_G, Toolkit
1381 .getDefaultToolkit().getMenuShortcutKeyMask(), false);
1382 al = new ActionListener()
1385 public void actionPerformed(ActionEvent e)
1387 createGroup_actionPerformed(e);
1390 addMenuActionAndAccelerator(keyStroke, createGroup, al);
1392 JMenuItem unGroup = new JMenuItem(
1393 MessageManager.getString("action.remove_group"));
1394 keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_G, Toolkit
1395 .getDefaultToolkit().getMenuShortcutKeyMask()
1396 | KeyEvent.SHIFT_MASK, false);
1397 al = new ActionListener()
1400 public void actionPerformed(ActionEvent e)
1402 unGroup_actionPerformed(e);
1405 addMenuActionAndAccelerator(keyStroke, unGroup, al);
1407 copy.setText(MessageManager.getString("action.copy"));
1408 keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_C, Toolkit
1409 .getDefaultToolkit().getMenuShortcutKeyMask(), false);
1411 al = new ActionListener()
1414 public void actionPerformed(ActionEvent e)
1416 copy_actionPerformed(e);
1419 addMenuActionAndAccelerator(keyStroke, copy, al);
1421 cut.setText(MessageManager.getString("action.cut"));
1422 keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_X, Toolkit
1423 .getDefaultToolkit().getMenuShortcutKeyMask(), false);
1424 al = new ActionListener()
1427 public void actionPerformed(ActionEvent e)
1429 cut_actionPerformed(e);
1432 addMenuActionAndAccelerator(keyStroke, cut, al);
1434 JMenuItem delete = new JMenuItem(
1435 MessageManager.getString("action.delete"));
1436 delete.addActionListener(new ActionListener()
1439 public void actionPerformed(ActionEvent e)
1441 delete_actionPerformed(e);
1445 pasteMenu.setText(MessageManager.getString("action.paste"));
1446 JMenuItem pasteNew = new JMenuItem(
1447 MessageManager.getString("label.to_new_alignment"));
1448 keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_V, Toolkit
1449 .getDefaultToolkit().getMenuShortcutKeyMask()
1450 | KeyEvent.SHIFT_MASK, false);
1451 al = new ActionListener()
1454 public void actionPerformed(ActionEvent e)
1456 pasteNew_actionPerformed(e);
1459 addMenuActionAndAccelerator(keyStroke, pasteNew, al);
1461 JMenuItem pasteThis = new JMenuItem(
1462 MessageManager.getString("label.to_this_alignment"));
1463 keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_V, Toolkit
1464 .getDefaultToolkit().getMenuShortcutKeyMask(), false);
1465 al = new ActionListener()
1468 public void actionPerformed(ActionEvent e)
1470 pasteThis_actionPerformed(e);
1473 addMenuActionAndAccelerator(keyStroke, pasteThis, al);
1475 applyToAllGroups.setText(MessageManager
1476 .getString("label.apply_colour_to_all_groups"));
1477 applyToAllGroups.addActionListener(new ActionListener()
1480 public void actionPerformed(ActionEvent e)
1482 applyToAllGroups_actionPerformed(e);
1485 JMenuItem createPNG = new JMenuItem("PNG");
1486 createPNG.addActionListener(new ActionListener()
1489 public void actionPerformed(ActionEvent e)
1494 createPNG.setActionCommand(MessageManager
1495 .getString("label.save_png_image"));
1497 JMenuItem font = new JMenuItem(MessageManager.getString("action.font"));
1498 font.addActionListener(new ActionListener()
1501 public void actionPerformed(ActionEvent e)
1503 font_actionPerformed(e);
1506 seqLimits.setText(MessageManager
1507 .getString("label.show_sequence_limits"));
1508 seqLimits.setState(jalview.bin.Cache.getDefault("SHOW_JVSUFFIX", true));
1509 seqLimits.addActionListener(new ActionListener()
1512 public void actionPerformed(ActionEvent e)
1514 seqLimit_actionPerformed(e);
1517 JMenuItem epsFile = new JMenuItem("EPS");
1518 epsFile.addActionListener(new ActionListener()
1521 public void actionPerformed(ActionEvent e)
1527 JMenuItem createSVG = new JMenuItem("SVG");
1528 createSVG.addActionListener(new ActionListener()
1531 public void actionPerformed(ActionEvent e)
1537 JMenuItem loadTreeMenuItem = new JMenuItem(
1538 MessageManager.getString("label.load_associated_tree"));
1539 loadTreeMenuItem.setActionCommand(MessageManager
1540 .getString("label.load_tree_for_sequence_set"));
1541 loadTreeMenuItem.addActionListener(new ActionListener()
1544 public void actionPerformed(ActionEvent e)
1546 loadTreeMenuItem_actionPerformed(e);
1550 scaleAbove.setVisible(false);
1551 scaleAbove.setText(MessageManager.getString("action.scale_above"));
1552 scaleAbove.addActionListener(new ActionListener()
1555 public void actionPerformed(ActionEvent e)
1557 scaleAbove_actionPerformed(e);
1560 scaleLeft.setVisible(false);
1561 scaleLeft.setSelected(true);
1562 scaleLeft.setText(MessageManager.getString("action.scale_left"));
1563 scaleLeft.addActionListener(new ActionListener()
1566 public void actionPerformed(ActionEvent e)
1568 scaleLeft_actionPerformed(e);
1571 scaleRight.setVisible(false);
1572 scaleRight.setSelected(true);
1573 scaleRight.setText(MessageManager.getString("action.scale_right"));
1574 scaleRight.addActionListener(new ActionListener()
1577 public void actionPerformed(ActionEvent e)
1579 scaleRight_actionPerformed(e);
1582 centreColumnLabelsMenuItem.setVisible(true);
1583 centreColumnLabelsMenuItem.setState(false);
1584 centreColumnLabelsMenuItem.setText(MessageManager
1585 .getString("label.centre_column_labels"));
1586 centreColumnLabelsMenuItem.addActionListener(new ActionListener()
1589 public void actionPerformed(ActionEvent e)
1591 centreColumnLabels_actionPerformed(e);
1594 followHighlightMenuItem.setVisible(true);
1595 followHighlightMenuItem.setState(true);
1596 followHighlightMenuItem.setText(MessageManager
1597 .getString("label.automatic_scrolling"));
1598 followHighlightMenuItem.addActionListener(new ActionListener()
1602 public void actionPerformed(ActionEvent e)
1604 followHighlight_actionPerformed();
1609 modifyPID = new JMenuItem(
1610 MessageManager.getString("label.modify_identity_threshold"));
1611 modifyPID.addActionListener(new ActionListener()
1614 public void actionPerformed(ActionEvent e)
1616 modifyPID_actionPerformed();
1619 modifyConservation.setText(MessageManager
1620 .getString("label.modify_conservation_threshold"));
1621 modifyConservation.addActionListener(new ActionListener()
1624 public void actionPerformed(ActionEvent e)
1626 modifyConservation_actionPerformed();
1630 .setText(MessageManager.getString("action.by_tree_order"));
1631 sort.setText(MessageManager.getString("action.sort"));
1632 sort.addMenuListener(new MenuListener()
1635 public void menuSelected(MenuEvent e)
1641 public void menuDeselected(MenuEvent e)
1646 public void menuCanceled(MenuEvent e)
1650 sortByAnnotScore.setText(MessageManager
1651 .getString("label.sort_by_score"));
1652 sort.add(sortByAnnotScore);
1653 sort.addMenuListener(new javax.swing.event.MenuListener()
1657 public void menuCanceled(MenuEvent e)
1662 public void menuDeselected(MenuEvent e)
1667 public void menuSelected(MenuEvent e)
1669 buildSortByAnnotationScoresMenu();
1672 sortByAnnotScore.setVisible(false);
1675 .setText(MessageManager.getString("action.calculate_tree"));
1677 padGapsMenuitem.setText(MessageManager.getString("label.pad_gaps"));
1678 padGapsMenuitem.setState(jalview.bin.Cache
1679 .getDefault("PAD_GAPS", false));
1680 padGapsMenuitem.addActionListener(new ActionListener()
1683 public void actionPerformed(ActionEvent e)
1685 padGapsMenuitem_actionPerformed(e);
1688 JMenuItem vamsasStore = new JMenuItem(
1689 MessageManager.getString("label.vamsas_store"));
1690 vamsasStore.setVisible(false);
1691 vamsasStore.addActionListener(new ActionListener()
1694 public void actionPerformed(ActionEvent e)
1696 vamsasStore_actionPerformed(e);
1699 showTranslation.setText(MessageManager
1700 .getString("label.translate_cDNA"));
1701 showTranslation.addActionListener(new ActionListener()
1704 public void actionPerformed(ActionEvent e)
1706 showTranslation_actionPerformed(e);
1709 showReverse.setText(MessageManager.getString("label.reverse"));
1710 showReverse.addActionListener(new ActionListener()
1713 public void actionPerformed(ActionEvent e)
1715 showReverse_actionPerformed(false);
1718 showReverseComplement.setText(MessageManager
1719 .getString("label.reverse_complement"));
1720 showReverseComplement.addActionListener(new ActionListener()
1723 public void actionPerformed(ActionEvent e)
1725 showReverse_actionPerformed(true);
1729 JMenuItem extractScores = new JMenuItem(
1730 MessageManager.getString("label.extract_scores"));
1731 extractScores.addActionListener(new ActionListener()
1734 public void actionPerformed(ActionEvent e)
1736 extractScores_actionPerformed(e);
1739 extractScores.setVisible(true);
1740 // JBPNote: TODO: make gui for regex based score extraction
1742 // for show products actions see AlignFrame.canShowProducts
1743 showProducts.setText(MessageManager.getString("label.get_cross_refs"));
1745 runGroovy.setText(MessageManager.getString("label.run_groovy"));
1746 runGroovy.setToolTipText(MessageManager
1747 .getString("label.run_groovy_tip"));
1748 runGroovy.addActionListener(new ActionListener()
1751 public void actionPerformed(ActionEvent e)
1753 runGroovy_actionPerformed();
1757 JMenuItem openFeatureSettings = new JMenuItem(
1758 MessageManager.getString("action.feature_settings"));
1759 openFeatureSettings.addActionListener(new ActionListener()
1762 public void actionPerformed(ActionEvent e)
1764 featureSettings_actionPerformed(e);
1767 JMenuItem fetchSequence = new JMenuItem(
1768 MessageManager.getString("label.fetch_sequences"));
1769 fetchSequence.addActionListener(new ActionListener()
1772 public void actionPerformed(ActionEvent e)
1774 fetchSequence_actionPerformed(e);
1778 JMenuItem annotationColour = new JMenuItem(
1779 MessageManager.getString("action.by_annotation"));
1780 annotationColour.addActionListener(new ActionListener()
1783 public void actionPerformed(ActionEvent e)
1785 annotationColour_actionPerformed(e);
1789 JMenuItem annotationColumn = new JMenuItem(
1790 MessageManager.getString("action.select_by_annotation"));
1791 annotationColumn.addActionListener(new ActionListener()
1794 public void actionPerformed(ActionEvent e)
1796 annotationColumn_actionPerformed(e);
1800 rnahelicesColour.setText(MessageManager
1801 .getString("action.by_rna_helixes"));
1802 rnahelicesColour.addActionListener(new ActionListener()
1805 public void actionPerformed(ActionEvent e)
1807 rnahelicesColour_actionPerformed(e);
1811 JMenuItem associatedData = new JMenuItem(
1812 MessageManager.getString("label.load_features_annotations"));
1813 associatedData.addActionListener(new ActionListener()
1816 public void actionPerformed(ActionEvent e)
1818 associatedData_actionPerformed(e);
1821 autoCalculate.setText(MessageManager
1822 .getString("label.autocalculate_consensus"));
1823 autoCalculate.setState(jalview.bin.Cache.getDefault(
1824 "AUTO_CALC_CONSENSUS", true));
1825 autoCalculate.addActionListener(new ActionListener()
1828 public void actionPerformed(ActionEvent e)
1830 autoCalculate_actionPerformed(e);
1833 sortByTree.setText(MessageManager
1834 .getString("label.sort_alignment_new_tree"));
1836 .setToolTipText("<html>"
1838 .getString("label.enable_automatically_sort_alignment_when_open_new_tree"));
1840 .setState(jalview.bin.Cache.getDefault("SORT_BY_TREE", false));
1841 sortByTree.addActionListener(new ActionListener()
1844 public void actionPerformed(ActionEvent e)
1846 sortByTreeOption_actionPerformed(e);
1850 listenToViewSelections.setText(MessageManager
1851 .getString("label.listen_for_selections"));
1852 listenToViewSelections
1853 .setToolTipText("<html>"
1855 .getString("label.selections_mirror_selections_made_same_sequences_other_views"));
1856 listenToViewSelections.setState(false);
1857 listenToViewSelections.addActionListener(new ActionListener()
1860 public void actionPerformed(ActionEvent e)
1862 listenToViewSelections_actionPerformed(e);
1866 JMenu addSequenceMenu = new JMenu(
1867 MessageManager.getString("label.add_sequences"));
1868 JMenuItem addFromFile = new JMenuItem(
1869 MessageManager.getString("label.from_file"));
1870 addFromFile.addActionListener(new ActionListener()
1873 public void actionPerformed(ActionEvent e)
1875 addFromFile_actionPerformed(e);
1878 JMenuItem addFromText = new JMenuItem(
1879 MessageManager.getString("label.from_textbox"));
1880 addFromText.addActionListener(new ActionListener()
1883 public void actionPerformed(ActionEvent e)
1885 addFromText_actionPerformed(e);
1888 JMenuItem addFromURL = new JMenuItem(
1889 MessageManager.getString("label.from_url"));
1890 addFromURL.addActionListener(new ActionListener()
1893 public void actionPerformed(ActionEvent e)
1895 addFromURL_actionPerformed(e);
1898 JMenuItem exportFeatures = new JMenuItem(
1899 MessageManager.getString("label.export_features"));
1900 exportFeatures.addActionListener(new ActionListener()
1903 public void actionPerformed(ActionEvent e)
1905 exportFeatures_actionPerformed(e);
1908 JMenuItem exportAnnotations = new JMenuItem(
1909 MessageManager.getString("label.export_annotations"));
1910 exportAnnotations.addActionListener(new ActionListener()
1913 public void actionPerformed(ActionEvent e)
1915 exportAnnotations_actionPerformed(e);
1918 statusPanel.setLayout(new GridLayout());
1919 JMenuItem showAllSeqs = new JMenuItem(
1920 MessageManager.getString("label.all_sequences"));
1921 showAllSeqs.setToolTipText(MessageManager
1922 .getString("label.toggle_sequence_visibility"));
1923 showAllSeqs.addActionListener(new ActionListener()
1926 public void actionPerformed(ActionEvent e)
1928 showAllSeqs_actionPerformed(e);
1931 JMenuItem showAllColumns = new JMenuItem(
1932 MessageManager.getString("label.all_columns"));
1933 showAllColumns.setToolTipText(MessageManager
1934 .getString("label.toggle_columns_visibility"));
1935 showAllColumns.addActionListener(new ActionListener()
1938 public void actionPerformed(ActionEvent e)
1940 showAllColumns_actionPerformed(e);
1943 JMenu hideMenu = new JMenu(MessageManager.getString("action.hide"));
1944 JMenuItem hideSelSequences = new JMenuItem(
1945 MessageManager.getString("label.selected_sequences"));
1946 hideSelSequences.setToolTipText(MessageManager
1947 .getString("label.toggle_sequence_visibility"));
1948 hideSelSequences.addActionListener(new ActionListener()
1951 public void actionPerformed(ActionEvent e)
1953 hideSelSequences_actionPerformed(e);
1956 JMenuItem hideSelColumns = new JMenuItem(
1957 MessageManager.getString("label.selected_columns"));
1958 hideSelColumns.setToolTipText(MessageManager
1959 .getString("label.toggle_columns_visibility"));
1960 hideSelColumns.addActionListener(new ActionListener()
1963 public void actionPerformed(ActionEvent e)
1965 hideSelColumns_actionPerformed(e);
1968 JMenuItem hideAllSelection = new JMenuItem(
1969 MessageManager.getString("label.selected_region"));
1970 hideAllSelection.addActionListener(new ActionListener()
1973 public void actionPerformed(ActionEvent e)
1975 hideAllSelection_actionPerformed(e);
1978 // TODO: should be hidden if no selection exists.
1979 JMenuItem hideAllButSelection = new JMenuItem(
1980 MessageManager.getString("label.all_but_selected_region"));
1981 hideAllButSelection.addActionListener(new ActionListener()
1984 public void actionPerformed(ActionEvent e)
1986 hideAllButSelection_actionPerformed(e);
1989 JMenuItem showAllhidden = new JMenuItem(
1990 MessageManager.getString("label.all_sequences_columns"));
1991 showAllhidden.setToolTipText(MessageManager
1992 .getString("label.toggles_visibility_hidden_selected_regions"));
1993 showAllhidden.addActionListener(new ActionListener()
1996 public void actionPerformed(ActionEvent e)
1998 showAllhidden_actionPerformed(e);
2001 hiddenMarkers.setText(MessageManager
2002 .getString("action.show_hidden_markers"));
2003 hiddenMarkers.addActionListener(new ActionListener()
2006 public void actionPerformed(ActionEvent e)
2008 hiddenMarkers_actionPerformed(e);
2012 JMenuItem invertColSel = new JMenuItem(
2013 MessageManager.getString("action.invert_column_selection"));
2014 keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_I, Toolkit
2015 .getDefaultToolkit().getMenuShortcutKeyMask()
2016 | KeyEvent.ALT_MASK, false);
2017 al = new ActionListener()
2020 public void actionPerformed(ActionEvent e)
2022 invertColSel_actionPerformed(e);
2025 addMenuActionAndAccelerator(keyStroke, invertColSel, al);
2027 showComplementMenuItem.setVisible(false);
2028 showComplementMenuItem.addActionListener(new ActionListener()
2031 public void actionPerformed(ActionEvent e)
2033 showComplement_actionPerformed(showComplementMenuItem.getState());
2037 tabbedPane.addChangeListener(new javax.swing.event.ChangeListener()
2040 public void stateChanged(ChangeEvent evt)
2042 JTabbedPane pane = (JTabbedPane) evt.getSource();
2043 int sel = pane.getSelectedIndex();
2044 tabSelectionChanged(sel);
2047 tabbedPane.addMouseListener(new MouseAdapter()
2050 public void mousePressed(MouseEvent e)
2052 if (e.isPopupTrigger()) // Mac
2054 tabbedPane_mousePressed(e);
2059 public void mouseReleased(MouseEvent e)
2061 if (e.isPopupTrigger()) // Windows
2063 tabbedPane_mousePressed(e);
2067 tabbedPane.addFocusListener(new FocusAdapter()
2070 public void focusGained(FocusEvent e)
2072 tabbedPane_focusGained(e);
2076 JMenuItem save = new JMenuItem(MessageManager.getString("action.save"));
2077 keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_S, Toolkit
2078 .getDefaultToolkit().getMenuShortcutKeyMask(), false);
2079 al = new ActionListener()
2082 public void actionPerformed(ActionEvent e)
2084 save_actionPerformed(e);
2087 addMenuActionAndAccelerator(keyStroke, save, al);
2089 reload.setEnabled(false);
2090 reload.setText(MessageManager.getString("action.reload"));
2091 reload.addActionListener(new ActionListener()
2094 public void actionPerformed(ActionEvent e)
2096 reload_actionPerformed(e);
2100 JMenuItem newView = new JMenuItem(
2101 MessageManager.getString("action.new_view"));
2102 keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_T, Toolkit
2103 .getDefaultToolkit().getMenuShortcutKeyMask(), false);
2104 al = new ActionListener()
2107 public void actionPerformed(ActionEvent e)
2109 newView_actionPerformed(e);
2112 addMenuActionAndAccelerator(keyStroke, newView, al);
2114 tabbedPane.setToolTipText("<html><i>"
2115 + MessageManager.getString("label.rename_tab_eXpand_reGroup")
2117 JMenuItem textColour = new JMenuItem(
2118 MessageManager.getString("action.set_text_colour"));
2119 textColour.addActionListener(new ActionListener()
2122 public void actionPerformed(ActionEvent e)
2124 textColour_actionPerformed(e);
2127 formatMenu.setText(MessageManager.getString("action.format"));
2128 JMenu selectMenu = new JMenu(MessageManager.getString("action.select"));
2129 idRightAlign.setText(MessageManager
2130 .getString("label.right_align_sequence_id"));
2131 idRightAlign.addActionListener(new ActionListener()
2134 public void actionPerformed(ActionEvent e)
2136 idRightAlign_actionPerformed(e);
2140 gatherViews.setEnabled(false);
2141 gatherViews.setText(MessageManager.getString("action.gather_views"));
2142 keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_G, 0, false);
2143 al = new ActionListener()
2146 public void actionPerformed(ActionEvent e)
2148 gatherViews_actionPerformed(e);
2151 addMenuActionAndAccelerator(keyStroke, gatherViews, al);
2153 expandViews.setEnabled(false);
2154 expandViews.setText(MessageManager.getString("action.expand_views"));
2155 keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_X, 0, false);
2156 al = new ActionListener()
2159 public void actionPerformed(ActionEvent e)
2161 expandViews_actionPerformed(e);
2164 addMenuActionAndAccelerator(keyStroke, expandViews, al);
2166 JMenuItem pageSetup = new JMenuItem(
2167 MessageManager.getString("action.page_setup"));
2168 pageSetup.addActionListener(new ActionListener()
2171 public void actionPerformed(ActionEvent e)
2173 pageSetup_actionPerformed(e);
2176 JMenuItem alignmentProperties = new JMenuItem(
2177 MessageManager.getString("label.alignment_props"));
2178 alignmentProperties.addActionListener(new ActionListener()
2181 public void actionPerformed(ActionEvent actionEvent)
2183 alignmentProperties();
2186 JMenuItem selectHighlighted = new JMenuItem(
2187 MessageManager.getString("action.select_highlighted_columns"));
2188 selectHighlighted.setToolTipText(MessageManager
2189 .getString("tooltip.select_highlighted_columns"));
2190 al = new ActionListener()
2193 public void actionPerformed(ActionEvent actionEvent)
2195 selectHighlightedColumns_actionPerformed(actionEvent);
2198 selectHighlighted.addActionListener(al);
2199 JMenu tooltipSettingsMenu = new JMenu(
2200 MessageManager.getString("label.sequence_id_tooltip"));
2201 JMenu autoAnnMenu = new JMenu(
2202 MessageManager.getString("label.autocalculated_annotation"));
2204 JMenu exportImageMenu = new JMenu(
2205 MessageManager.getString("label.export_image"));
2206 JMenu fileMenu = new JMenu(MessageManager.getString("action.file"));
2207 alignFrameMenuBar.add(fileMenu);
2208 alignFrameMenuBar.add(editMenu);
2209 alignFrameMenuBar.add(selectMenu);
2210 alignFrameMenuBar.add(viewMenu);
2211 alignFrameMenuBar.add(annotationsMenu);
2212 alignFrameMenuBar.add(formatMenu);
2213 alignFrameMenuBar.add(colourMenu);
2214 alignFrameMenuBar.add(calculateMenu);
2215 alignFrameMenuBar.add(webService);
2217 fileMenu.add(fetchSequence);
2218 fileMenu.add(addSequenceMenu);
2219 fileMenu.add(reload);
2220 fileMenu.addSeparator();
2221 fileMenu.add(vamsasStore);
2223 fileMenu.add(saveAs);
2224 fileMenu.add(outputTextboxMenu);
2225 fileMenu.add(pageSetup);
2226 fileMenu.add(printMenuItem);
2227 fileMenu.addSeparator();
2228 fileMenu.add(exportImageMenu);
2229 fileMenu.add(exportFeatures);
2230 fileMenu.add(exportAnnotations);
2231 fileMenu.add(loadTreeMenuItem);
2232 fileMenu.add(associatedData);
2233 fileMenu.addSeparator();
2234 fileMenu.add(closeMenuItem);
2236 pasteMenu.add(pasteNew);
2237 pasteMenu.add(pasteThis);
2238 editMenu.add(undoMenuItem);
2239 editMenu.add(redoMenuItem);
2242 editMenu.add(pasteMenu);
2243 editMenu.add(delete);
2244 editMenu.addSeparator();
2245 editMenu.add(remove2LeftMenuItem);
2246 editMenu.add(remove2RightMenuItem);
2247 editMenu.add(removeGappedColumnMenuItem);
2248 editMenu.add(removeAllGapsMenuItem);
2249 editMenu.add(removeRedundancyMenuItem);
2250 editMenu.addSeparator();
2251 // dont add these yet in the CVS build - they cannot be undone!
2252 // Excluded from Jalview 2.5 release - undo needs to be implemented.
2253 // editMenu.add(justifyLeftMenuItem);
2254 // editMenu.add(justifyRightMenuItem);
2255 // editMenu.addSeparator();
2256 editMenu.add(padGapsMenuitem);
2258 showMenu.add(showAllColumns);
2259 showMenu.add(showAllSeqs);
2260 showMenu.add(showAllhidden);
2261 hideMenu.add(hideSelColumns);
2262 hideMenu.add(hideSelSequences);
2263 hideMenu.add(hideAllSelection);
2264 hideMenu.add(hideAllButSelection);
2265 viewMenu.add(newView);
2266 viewMenu.add(expandViews);
2267 viewMenu.add(gatherViews);
2268 viewMenu.addSeparator();
2269 viewMenu.add(showMenu);
2270 viewMenu.add(hideMenu);
2271 viewMenu.add(showComplementMenuItem);
2272 viewMenu.addSeparator();
2273 viewMenu.add(followHighlightMenuItem);
2274 viewMenu.addSeparator();
2275 viewMenu.add(showSeqFeatures);
2276 // viewMenu.add(showSeqFeaturesHeight);
2277 viewMenu.add(openFeatureSettings);
2278 tooltipSettingsMenu.add(showDbRefsMenuitem);
2279 tooltipSettingsMenu.add(showNpFeatsMenuitem);
2280 viewMenu.add(tooltipSettingsMenu);
2281 viewMenu.addSeparator();
2282 viewMenu.add(alignmentProperties);
2283 viewMenu.addSeparator();
2284 viewMenu.add(overviewMenuItem);
2286 annotationsMenu.add(annotationPanelMenuItem);
2287 annotationsMenu.addSeparator();
2288 annotationsMenu.add(showAllAlAnnotations);
2289 annotationsMenu.add(hideAllAlAnnotations);
2290 annotationsMenu.addSeparator();
2291 annotationsMenu.add(showAllSeqAnnotations);
2292 annotationsMenu.add(hideAllSeqAnnotations);
2293 annotationsMenu.add(sortAnnBySequence);
2294 annotationsMenu.add(sortAnnByLabel);
2295 annotationsMenu.addSeparator();
2296 autoAnnMenu.add(showAutoFirst);
2297 autoAnnMenu.add(showAutoLast);
2298 autoAnnMenu.addSeparator();
2299 autoAnnMenu.add(applyAutoAnnotationSettings);
2300 autoAnnMenu.add(showConsensusHistogram);
2301 autoAnnMenu.add(showSequenceLogo);
2302 autoAnnMenu.add(normaliseSequenceLogo);
2303 autoAnnMenu.addSeparator();
2304 autoAnnMenu.add(showGroupConservation);
2305 autoAnnMenu.add(showGroupConsensus);
2306 annotationsMenu.add(autoAnnMenu);
2308 colourMenu.add(applyToAllGroups);
2309 colourMenu.add(textColour);
2310 colourMenu.addSeparator();
2311 colourMenu.add(noColourmenuItem);
2312 colourMenu.add(clustalColour);
2313 colourMenu.add(BLOSUM62Colour);
2314 colourMenu.add(PIDColour);
2315 colourMenu.add(zappoColour);
2316 colourMenu.add(taylorColour);
2317 colourMenu.add(hydrophobicityColour);
2318 colourMenu.add(helixColour);
2319 colourMenu.add(strandColour);
2320 colourMenu.add(turnColour);
2321 colourMenu.add(buriedColour);
2322 colourMenu.add(nucleotideColour);
2323 colourMenu.add(purinePyrimidineColour);
2324 // colourMenu.add(RNAInteractionColour);
2325 // colourMenu.add(covariationColour);
2326 colourMenu.add(tcoffeeColour);
2327 colourMenu.add(userDefinedColour);
2328 colourMenu.addSeparator();
2329 colourMenu.add(conservationMenuItem);
2330 colourMenu.add(modifyConservation);
2331 colourMenu.add(abovePIDThreshold);
2332 colourMenu.add(modifyPID);
2333 colourMenu.add(annotationColour);
2334 colourMenu.add(rnahelicesColour);
2336 sort.add(sortIDMenuItem);
2337 sort.add(sortLengthMenuItem);
2338 sort.add(sortGroupMenuItem);
2339 sort.add(sortPairwiseMenuItem);
2340 sort.add(sortByTreeMenu);
2341 calculateMenu.add(sort);
2342 calculateMenu.add(calculateTree);
2343 calculateMenu.addSeparator();
2344 calculateMenu.add(pairwiseAlignmentMenuItem);
2345 calculateMenu.add(PCAMenuItem);
2346 calculateMenu.addSeparator();
2347 calculateMenu.add(showTranslation);
2348 calculateMenu.add(showReverse);
2349 calculateMenu.add(showReverseComplement);
2350 calculateMenu.add(showProducts);
2351 calculateMenu.add(autoCalculate);
2352 calculateMenu.add(sortByTree);
2353 calculateMenu.addSeparator();
2354 calculateMenu.add(expandAlignment);
2355 calculateMenu.add(extractScores);
2356 calculateMenu.addSeparator();
2357 calculateMenu.add(runGroovy);
2359 webServiceNoServices = new JMenuItem(
2360 MessageManager.getString("label.no_services"));
2361 webService.add(webServiceNoServices);
2362 exportImageMenu.add(htmlMenuItem);
2363 exportImageMenu.add(epsFile);
2364 exportImageMenu.add(createPNG);
2365 exportImageMenu.add(createBioJS);
2366 exportImageMenu.add(createSVG);
2367 addSequenceMenu.add(addFromFile);
2368 addSequenceMenu.add(addFromText);
2369 addSequenceMenu.add(addFromURL);
2370 this.getContentPane().add(statusPanel, java.awt.BorderLayout.SOUTH);
2371 statusPanel.add(statusBar, null);
2372 this.getContentPane().add(tabbedPane, java.awt.BorderLayout.CENTER);
2374 formatMenu.add(font);
2375 formatMenu.addSeparator();
2376 formatMenu.add(wrapMenuItem);
2377 formatMenu.add(scaleAbove);
2378 formatMenu.add(scaleLeft);
2379 formatMenu.add(scaleRight);
2380 formatMenu.add(seqLimits);
2381 formatMenu.add(idRightAlign);
2382 formatMenu.add(hiddenMarkers);
2383 formatMenu.add(viewBoxesMenuItem);
2384 formatMenu.add(viewTextMenuItem);
2385 formatMenu.add(colourTextMenuItem);
2386 formatMenu.add(renderGapsMenuItem);
2387 formatMenu.add(centreColumnLabelsMenuItem);
2388 formatMenu.add(showNonconservedMenuItem);
2389 selectMenu.add(findMenuItem);
2390 selectMenu.addSeparator();
2391 selectMenu.add(selectAllSequenceMenuItem);
2392 selectMenu.add(deselectAllSequenceMenuItem);
2393 selectMenu.add(invertSequenceMenuItem);
2394 selectMenu.add(invertColSel);
2395 selectMenu.add(createGroup);
2396 selectMenu.add(unGroup);
2397 selectMenu.add(grpsFromSelection);
2398 selectMenu.add(deleteGroups);
2399 selectMenu.add(annotationColumn);
2400 selectMenu.add(selectHighlighted);
2401 // TODO - determine if the listenToViewSelections button is needed : see bug
2403 // selectMenu.addSeparator();
2404 // selectMenu.add(listenToViewSelections);
2407 protected void selectHighlightedColumns_actionPerformed(
2408 ActionEvent actionEvent)
2410 // TODO Auto-generated method stub
2415 * Generate the reverse sequence (or reverse complement if the flag is true)
2416 * and add it to the alignment
2420 protected void showReverse_actionPerformed(boolean complement)
2425 * Try to run script in a Groovy console, having first ensured that this
2426 * alignframe is set as currentAlignFrame in Desktop
2428 protected void runGroovy_actionPerformed()
2434 * Adds the given action listener and key accelerator to the given menu item.
2435 * Also saves in a lookup table to support lookup of action by key stroke.
2439 * @param actionListener
2441 protected void addMenuActionAndAccelerator(KeyStroke keyStroke,
2442 JMenuItem menuItem, ActionListener actionListener)
2444 menuItem.setAccelerator(keyStroke);
2445 accelerators.put(keyStroke, menuItem);
2446 menuItem.addActionListener(actionListener);
2450 * Action on clicking sort annotations by type.
2454 protected void sortAnnotations_actionPerformed()
2459 * Action on clicking Show all annotations.
2461 * @param forSequences
2462 * update sequence-related annotations
2463 * @param forAlignment
2464 * update non-sequence-related annotations
2466 protected void showAllAnnotations_actionPerformed(boolean forSequences,
2467 boolean forAlignment)
2469 setAnnotationsVisibility(true, forSequences, forAlignment);
2473 * Action on clicking Hide all annotations.
2475 * @param forSequences
2476 * update sequence-related annotations
2477 * @param forAlignment
2478 * update non-sequence-related annotations
2480 protected void hideAllAnnotations_actionPerformed(boolean forSequences,
2481 boolean forAlignment)
2483 setAnnotationsVisibility(false, forSequences, forAlignment);
2487 * Set the visibility of annotations to true or false. Can act on
2488 * sequence-related annotations, or alignment-related, or both.
2491 * @param forSequences
2492 * update sequence-related annotations
2493 * @param forAlignment
2494 * update non-sequence-related annotations
2496 protected void setAnnotationsVisibility(boolean visible,
2497 boolean forSequences, boolean forAlignment)
2502 protected void normaliseSequenceLogo_actionPerformed(ActionEvent e)
2504 // TODO Auto-generated method stub
2508 protected void listenToViewSelections_actionPerformed(ActionEvent e)
2510 // TODO Auto-generated method stub
2514 protected void showAllhidden_actionPerformed(ActionEvent e)
2516 // TODO Auto-generated method stub
2520 protected void hideAllButSelection_actionPerformed(ActionEvent e)
2522 // TODO Auto-generated method stub
2526 protected void hideAllSelection_actionPerformed(ActionEvent e)
2528 // TODO Auto-generated method stub
2532 protected void applyAutoAnnotationSettings_actionPerformed(ActionEvent e)
2534 // TODO Auto-generated method stub
2538 protected void showConsensusHistogram_actionPerformed(ActionEvent e)
2540 // TODO Auto-generated method stub
2544 protected void showSequenceLogo_actionPerformed(ActionEvent e)
2546 // TODO Auto-generated method stub
2550 protected void makeGrpsFromSelection_actionPerformed(ActionEvent e)
2552 // TODO Auto-generated method stub
2556 protected void showGroupConsensus_actionPerformed(ActionEvent e)
2558 // TODO Auto-generated method stub
2562 protected void showGroupConservation_actionPerformed(ActionEvent e)
2564 // TODO Auto-generated method stub
2568 protected void showUnconservedMenuItem_actionPerformed(ActionEvent e)
2570 // TODO Auto-generated method stub
2574 protected void justifyRightMenuItem_actionPerformed(ActionEvent e)
2576 // TODO Auto-generated method stub
2580 protected void justifyLeftMenuItem_actionPerformed(ActionEvent e)
2582 // TODO Auto-generated method stub
2586 protected void followHighlight_actionPerformed()
2588 // TODO Auto-generated method stub
2592 protected void showNpFeats_actionPerformed(ActionEvent e)
2594 // TODO Auto-generated method stub
2598 protected void showDbRefs_actionPerformed(ActionEvent e)
2600 // TODO Auto-generated method stub
2604 protected void centreColumnLabels_actionPerformed(ActionEvent e)
2608 protected void buildSortByAnnotationScoresMenu()
2612 protected void extractScores_actionPerformed(ActionEvent e)
2616 protected void outputText_actionPerformed(ActionEvent e)
2620 public void addFromFile_actionPerformed(ActionEvent e)
2625 public void addFromText_actionPerformed(ActionEvent e)
2630 public void addFromURL_actionPerformed(ActionEvent e)
2635 public void exportFeatures_actionPerformed(ActionEvent e)
2640 public void exportAnnotations_actionPerformed(ActionEvent e)
2645 protected void htmlMenuItem_actionPerformed(ActionEvent e)
2649 protected void bioJSMenuItem_actionPerformed(ActionEvent e)
2654 protected void closeMenuItem_actionPerformed(boolean b)
2658 protected void redoMenuItem_actionPerformed(ActionEvent e)
2662 protected void undoMenuItem_actionPerformed(ActionEvent e)
2666 protected void selectAllSequenceMenuItem_actionPerformed(ActionEvent e)
2670 protected void deselectAllSequenceMenuItem_actionPerformed(ActionEvent e)
2674 protected void invertSequenceMenuItem_actionPerformed(ActionEvent e)
2678 protected void remove2LeftMenuItem_actionPerformed(ActionEvent e)
2682 protected void remove2RightMenuItem_actionPerformed(ActionEvent e)
2686 protected void removeGappedColumnMenuItem_actionPerformed(ActionEvent e)
2690 protected void removeAllGapsMenuItem_actionPerformed(ActionEvent e)
2694 protected void wrapMenuItem_actionPerformed(ActionEvent e)
2698 protected void viewBoxesMenuItem_actionPerformed(ActionEvent e)
2702 protected void viewTextMenuItem_actionPerformed(ActionEvent e)
2706 protected void colourTextMenuItem_actionPerformed(ActionEvent e)
2710 protected void annotationPanelMenuItem_actionPerformed(ActionEvent e)
2714 protected void overviewMenuItem_actionPerformed(ActionEvent e)
2718 protected void sortPairwiseMenuItem_actionPerformed(ActionEvent e)
2722 protected void sortIDMenuItem_actionPerformed(ActionEvent e)
2726 protected void sortLengthMenuItem_actionPerformed(ActionEvent e)
2730 protected void sortGroupMenuItem_actionPerformed(ActionEvent e)
2734 protected void removeRedundancyMenuItem_actionPerformed(ActionEvent e)
2738 protected void pairwiseAlignmentMenuItem_actionPerformed(ActionEvent e)
2742 protected void PCAMenuItem_actionPerformed(ActionEvent e)
2746 protected void averageDistanceTreeMenuItem_actionPerformed(ActionEvent e)
2750 protected void neighbourTreeMenuItem_actionPerformed(ActionEvent e)
2754 protected void njTreeBlosumMenuItem_actionPerformed(ActionEvent e)
2758 protected void avTreeBlosumMenuItem_actionPerformed(ActionEvent e)
2762 protected void clustalColour_actionPerformed(ActionEvent e)
2766 protected void zappoColour_actionPerformed(ActionEvent e)
2770 protected void taylorColour_actionPerformed(ActionEvent e)
2774 protected void hydrophobicityColour_actionPerformed(ActionEvent e)
2778 protected void helixColour_actionPerformed(ActionEvent e)
2782 protected void strandColour_actionPerformed(ActionEvent e)
2786 protected void turnColour_actionPerformed(ActionEvent e)
2790 protected void buriedColour_actionPerformed(ActionEvent e)
2794 protected void userDefinedColour_actionPerformed(ActionEvent e)
2798 protected void PIDColour_actionPerformed(ActionEvent e)
2802 protected void BLOSUM62Colour_actionPerformed(ActionEvent e)
2806 protected void purinePyrimidineColour_actionPerformed(ActionEvent e)
2810 protected void RNAInteractionColour_actionPerformed(ActionEvent e)
2815 * protected void covariationColour_actionPerformed(ActionEvent e) { }
2818 protected void noColourmenuItem_actionPerformed(ActionEvent e)
2822 protected void conservationMenuItem_actionPerformed()
2826 protected void printMenuItem_actionPerformed(ActionEvent e)
2830 protected void renderGapsMenuItem_actionPerformed(ActionEvent e)
2834 protected void findMenuItem_actionPerformed(ActionEvent e)
2838 protected void abovePIDThreshold_actionPerformed()
2842 public void showSeqFeatures_actionPerformed(ActionEvent actionEvent)
2846 protected void nucleotideColour_actionPerformed(ActionEvent e)
2850 protected void deleteGroups_actionPerformed(ActionEvent e)
2854 protected void createGroup_actionPerformed(ActionEvent e)
2858 protected void unGroup_actionPerformed(ActionEvent e)
2862 protected void copy_actionPerformed(ActionEvent e)
2866 protected void cut_actionPerformed(ActionEvent e)
2870 protected void delete_actionPerformed(ActionEvent e)
2874 protected void pasteNew_actionPerformed(ActionEvent e)
2878 protected void pasteThis_actionPerformed(ActionEvent e)
2882 protected void applyToAllGroups_actionPerformed(ActionEvent e)
2886 public void createPNG(java.io.File f)
2890 protected void font_actionPerformed(ActionEvent e)
2894 protected void seqLimit_actionPerformed(ActionEvent e)
2898 public void seqDBRef_actionPerformed(ActionEvent e)
2903 public void createEPS(java.io.File f)
2907 public void createSVG(java.io.File f)
2912 protected void loadTreeMenuItem_actionPerformed(ActionEvent e)
2918 * Template method to handle the 'load T-Coffee scores' menu event.
2920 * Subclasses override this method to provide a custom action.
2925 protected void loadScores_actionPerformed(ActionEvent event)
2931 * Template method to handle the 'Color T-Coffee scores' menu event.
2933 * Subclasses override this method to provide a custom action.
2938 protected void tcoffeeColorScheme_actionPerformed(ActionEvent event)
2943 protected void jpred_actionPerformed(ActionEvent e)
2947 protected void scaleAbove_actionPerformed(ActionEvent e)
2951 protected void scaleLeft_actionPerformed(ActionEvent e)
2955 protected void scaleRight_actionPerformed(ActionEvent e)
2959 protected void modifyPID_actionPerformed()
2963 protected void modifyConservation_actionPerformed()
2967 protected void saveAs_actionPerformed(ActionEvent e)
2971 protected void padGapsMenuitem_actionPerformed(ActionEvent e)
2975 public void vamsasStore_actionPerformed(ActionEvent e)
2980 public void vamsasLoad_actionPerformed(ActionEvent e)
2985 public void showTranslation_actionPerformed(ActionEvent e)
2990 public void featureSettings_actionPerformed(ActionEvent e)
2995 public void fetchSequence_actionPerformed(ActionEvent e)
3000 public void smoothFont_actionPerformed(ActionEvent e)
3005 public void annotationColour_actionPerformed(ActionEvent e)
3010 public void annotationColumn_actionPerformed(ActionEvent e)
3015 public void rnahelicesColour_actionPerformed(ActionEvent e)
3020 public void associatedData_actionPerformed(ActionEvent e)
3025 public void autoCalculate_actionPerformed(ActionEvent e)
3030 public void sortByTreeOption_actionPerformed(ActionEvent e)
3035 public void showAllSeqs_actionPerformed(ActionEvent e)
3040 public void showAllColumns_actionPerformed(ActionEvent e)
3045 public void hideSelSequences_actionPerformed(ActionEvent e)
3050 public void hideSelColumns_actionPerformed(ActionEvent e)
3055 public void hiddenMarkers_actionPerformed(ActionEvent e)
3060 public void findPdbId_actionPerformed(ActionEvent e)
3065 public void enterPdbId_actionPerformed(ActionEvent e)
3070 public void pdbFile_actionPerformed(ActionEvent e)
3075 public void invertColSel_actionPerformed(ActionEvent e)
3080 public void tabSelectionChanged(int sel)
3085 public void tabbedPane_mousePressed(MouseEvent e)
3090 public void tabbedPane_focusGained(FocusEvent e)
3095 public void save_actionPerformed(ActionEvent e)
3100 public void reload_actionPerformed(ActionEvent e)
3105 public void newView_actionPerformed(ActionEvent e)
3110 public void textColour_actionPerformed(ActionEvent e)
3115 public void idRightAlign_actionPerformed(ActionEvent e)
3120 public void expandViews_actionPerformed(ActionEvent e)
3125 public void gatherViews_actionPerformed(ActionEvent e)
3130 public void buildTreeMenu()
3135 public void pageSetup_actionPerformed(ActionEvent e)
3140 public void alignmentProperties()
3145 protected void expand_newalign(ActionEvent e)
3147 // TODO Auto-generated method stub
3151 protected boolean isShowAutoCalculatedAbove()
3153 return showAutoCalculatedAbove;
3156 protected void setShowAutoCalculatedAbove(boolean showAutoCalculatedAbove)
3158 this.showAutoCalculatedAbove = showAutoCalculatedAbove;
3161 protected SequenceAnnotationOrder getAnnotationSortOrder()
3163 return annotationSortOrder;
3166 protected void setAnnotationSortOrder(
3167 SequenceAnnotationOrder annotationSortOrder)
3169 this.annotationSortOrder = annotationSortOrder;
3172 public Map<KeyStroke, JMenuItem> getAccelerators()
3174 return this.accelerators;
3178 * Returns the selected index of the tabbed pane, or -1 if none selected
3179 * (including the case where the tabbed pane has not been made visible).
3183 public int getTabIndex()
3185 return tabbedPane.getSelectedIndex();
3188 public JPanel getStatusPanel()
3194 * Sets a reference to the containing split frame. Also makes the 'toggle
3195 * split view' menu item visible and checked.
3199 public void setSplitFrame(SplitContainerI sf)
3201 this.splitFrame = sf;
3204 this.showComplementMenuItem.setVisible(true);
3205 this.showComplementMenuItem.setState(true);
3209 public SplitContainerI getSplitViewContainer()
3211 return this.splitFrame;
3214 protected void showComplement_actionPerformed(boolean complement)