JAL-845 code/refactoring/tests related to linking DNA and protein
[jalview.git] / src / jalview / jbgui / GAlignFrame.java
1 /*
2  * Jalview - A Sequence Alignment Editor and Viewer (Version 2.8.2)
3  * Copyright (C) 2014 The Jalview Authors
4  * 
5  * This file is part of Jalview.
6  * 
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.
11  *  
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.
16  * 
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.
20  */
21 package jalview.jbgui;
22
23 import jalview.analysis.AnnotationSorter.SequenceAnnotationOrder;
24 import jalview.bin.Cache;
25 import jalview.gui.JvSwingUtils;
26 import jalview.gui.Preferences;
27 import jalview.schemes.ColourSchemeProperty;
28 import jalview.util.MessageManager;
29
30 import java.awt.BorderLayout;
31 import java.awt.Color;
32 import java.awt.GridLayout;
33 import java.awt.Toolkit;
34 import java.awt.event.ActionEvent;
35 import java.awt.event.ActionListener;
36 import java.awt.event.FocusAdapter;
37 import java.awt.event.FocusEvent;
38 import java.awt.event.MouseAdapter;
39 import java.awt.event.MouseEvent;
40 import java.util.HashMap;
41 import java.util.Map;
42
43 import javax.swing.AbstractAction;
44 import javax.swing.BorderFactory;
45 import javax.swing.ButtonGroup;
46 import javax.swing.JCheckBoxMenuItem;
47 import javax.swing.JComponent;
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.SwingUtilities;
59 import javax.swing.event.ChangeEvent;
60 import javax.swing.event.MenuEvent;
61 import javax.swing.event.MenuListener;
62
63 public class GAlignFrame extends JInternalFrame
64 {
65   protected JMenuBar alignFrameMenuBar = new JMenuBar();
66
67   protected JMenu fileMenu = new JMenu();
68
69   protected JMenuItem closeMenuItem = new JMenuItem();
70
71   protected JMenu editMenu = new JMenu();
72
73   protected JMenu viewMenu = new JMenu();
74
75   protected JMenu annotationsMenu = new JMenu();
76
77   protected JMenu colourMenu = new JMenu();
78
79   protected JMenu calculateMenu = new JMenu();
80
81   protected JMenu webService = new JMenu();
82
83   protected JMenuItem webServiceNoServices;
84
85   protected JMenuItem selectAllSequenceMenuItem = new JMenuItem();
86
87   protected JMenuItem deselectAllSequenceMenuItem = new JMenuItem();
88
89   protected JMenuItem invertSequenceMenuItem = new JMenuItem();
90
91   protected JMenuItem remove2LeftMenuItem = new JMenuItem();
92
93   protected JMenuItem remove2RightMenuItem = new JMenuItem();
94
95   protected JMenuItem removeGappedColumnMenuItem = new JMenuItem();
96
97   protected JMenuItem removeAllGapsMenuItem = new JMenuItem();
98
99   public JCheckBoxMenuItem viewBoxesMenuItem = new JCheckBoxMenuItem();
100
101   public JCheckBoxMenuItem viewTextMenuItem = new JCheckBoxMenuItem();
102
103   protected JMenuItem sortPairwiseMenuItem = new JMenuItem();
104
105   protected JMenuItem sortIDMenuItem = new JMenuItem();
106
107   protected JMenuItem sortLengthMenuItem = new JMenuItem();
108
109   protected JMenuItem sortGroupMenuItem = new JMenuItem();
110
111   protected JMenu sortByAnnotScore = new JMenu();
112
113   protected JMenuItem removeRedundancyMenuItem = new JMenuItem();
114
115   protected JMenuItem pairwiseAlignmentMenuItem = new JMenuItem();
116
117   protected JMenuItem PCAMenuItem = new JMenuItem();
118
119   protected JMenuItem averageDistanceTreeMenuItem = new JMenuItem();
120
121   protected JMenuItem neighbourTreeMenuItem = new JMenuItem();
122
123   BorderLayout borderLayout1 = new BorderLayout();
124
125   public JLabel statusBar = new JLabel();
126
127   protected JMenuItem saveAs = new JMenuItem();
128
129   protected JMenu outputTextboxMenu = new JMenu();
130
131   protected JRadioButtonMenuItem clustalColour = new JRadioButtonMenuItem();
132
133   protected JRadioButtonMenuItem zappoColour = new JRadioButtonMenuItem();
134
135   protected JRadioButtonMenuItem taylorColour = new JRadioButtonMenuItem();
136
137   protected JRadioButtonMenuItem hydrophobicityColour = new JRadioButtonMenuItem();
138
139   protected JRadioButtonMenuItem helixColour = new JRadioButtonMenuItem();
140
141   protected JRadioButtonMenuItem strandColour = new JRadioButtonMenuItem();
142
143   protected JRadioButtonMenuItem turnColour = new JRadioButtonMenuItem();
144
145   protected JRadioButtonMenuItem buriedColour = new JRadioButtonMenuItem();
146
147   protected JRadioButtonMenuItem userDefinedColour = new JRadioButtonMenuItem();
148
149   protected JRadioButtonMenuItem PIDColour = new JRadioButtonMenuItem();
150
151   protected JRadioButtonMenuItem BLOSUM62Colour = new JRadioButtonMenuItem();
152
153   protected JRadioButtonMenuItem nucleotideColour = new JRadioButtonMenuItem();
154
155   protected JRadioButtonMenuItem purinePyrimidineColour = new JRadioButtonMenuItem();
156
157   protected JRadioButtonMenuItem RNAInteractionColour = new JRadioButtonMenuItem();
158
159   // protected JRadioButtonMenuItem covariationColour = new
160   // JRadioButtonMenuItem();
161
162   protected JRadioButtonMenuItem tcoffeeColour = new JRadioButtonMenuItem();
163
164   JMenuItem njTreeBlosumMenuItem = new JMenuItem();
165
166   JMenuItem avDistanceTreeBlosumMenuItem = new JMenuItem();
167
168   public JCheckBoxMenuItem annotationPanelMenuItem = new JCheckBoxMenuItem();
169
170   public JCheckBoxMenuItem colourTextMenuItem = new JCheckBoxMenuItem();
171
172   public JCheckBoxMenuItem showNonconservedMenuItem = new JCheckBoxMenuItem();
173
174   JMenuItem htmlMenuItem = new JMenuItem();
175
176   JMenuItem overviewMenuItem = new JMenuItem();
177
178   protected JMenuItem undoMenuItem = new JMenuItem();
179
180   protected JMenuItem redoMenuItem = new JMenuItem();
181
182   public JCheckBoxMenuItem conservationMenuItem = new JCheckBoxMenuItem();
183
184   JRadioButtonMenuItem noColourmenuItem = new JRadioButtonMenuItem();
185
186   public JCheckBoxMenuItem wrapMenuItem = new JCheckBoxMenuItem();
187
188   JMenuItem printMenuItem = new JMenuItem();
189
190   public JCheckBoxMenuItem renderGapsMenuItem = new JCheckBoxMenuItem();
191
192   JMenuItem findMenuItem = new JMenuItem();
193
194   public JCheckBoxMenuItem abovePIDThreshold = new JCheckBoxMenuItem();
195
196   public JCheckBoxMenuItem showSeqFeatures = new JCheckBoxMenuItem();
197
198   public JCheckBoxMenuItem showSeqFeaturesHeight = new JCheckBoxMenuItem();
199
200   JMenuItem deleteGroups = new JMenuItem();
201
202   JMenuItem createGroup = new JMenuItem();
203
204   JMenuItem unGroup = new JMenuItem();
205
206   JMenuItem delete = new JMenuItem();
207
208   JMenuItem copy = new JMenuItem();
209
210   JMenuItem cut = new JMenuItem();
211
212   JMenu pasteMenu = new JMenu();
213
214   JMenuItem pasteNew = new JMenuItem();
215
216   JMenuItem pasteThis = new JMenuItem();
217
218   public JCheckBoxMenuItem applyToAllGroups = new JCheckBoxMenuItem();
219
220   JMenuItem createPNG = new JMenuItem();
221
222   JMenuItem createSVG = new JMenuItem();
223
224   protected JMenuItem font = new JMenuItem();
225
226   public JCheckBoxMenuItem seqLimits = new JCheckBoxMenuItem();
227
228   JMenuItem epsFile = new JMenuItem();
229
230   JMenuItem LoadtreeMenuItem = new JMenuItem();
231
232   public JCheckBoxMenuItem scaleAbove = new JCheckBoxMenuItem();
233
234   public JCheckBoxMenuItem scaleLeft = new JCheckBoxMenuItem();
235
236   public JCheckBoxMenuItem scaleRight = new JCheckBoxMenuItem();
237
238   protected JMenuItem modifyPID = new JMenuItem();
239
240   protected JMenuItem modifyConservation = new JMenuItem();
241
242   protected JMenu sortByTreeMenu = new JMenu();
243
244   protected JMenu sort = new JMenu();
245
246   protected JMenu calculateTree = new JMenu();
247
248   JMenu jMenu2 = new JMenu();
249
250   protected JCheckBoxMenuItem padGapsMenuitem = new JCheckBoxMenuItem();
251
252   protected JCheckBoxMenuItem showNpFeatsMenuitem = new JCheckBoxMenuItem();
253
254   protected JCheckBoxMenuItem showDbRefsMenuitem = new JCheckBoxMenuItem();
255
256   protected ButtonGroup colours = new ButtonGroup();
257
258   JMenuItem vamsasStore = new JMenuItem();
259
260   protected JMenuItem showTranslation = new JMenuItem();
261
262   protected JMenu cdna = new JMenu();
263
264   protected JMenuItem extractScores = new JMenuItem();
265
266   protected JMenuItem expandAlignment = new JMenuItem();
267
268   protected JMenu showProducts = new JMenu();
269
270   public JMenuItem openFeatureSettings = new JMenuItem();
271
272   JMenuItem fetchSequence = new JMenuItem();
273
274   JMenuItem annotationColour = new JMenuItem();
275
276   protected JMenuItem rnahelicesColour = new JMenuItem();
277
278   JMenuItem associatedData = new JMenuItem();
279
280   protected JCheckBoxMenuItem autoCalculate = new JCheckBoxMenuItem();
281
282   protected JCheckBoxMenuItem sortByTree = new JCheckBoxMenuItem();
283
284   protected JCheckBoxMenuItem listenToViewSelections = new JCheckBoxMenuItem();
285
286   JMenu addSequenceMenu = new JMenu();
287
288   JMenuItem addFromFile = new JMenuItem();
289
290   JMenuItem addFromText = new JMenuItem();
291
292   JMenuItem addFromURL = new JMenuItem();
293
294   JMenuItem exportAnnotations = new JMenuItem();
295
296   JMenuItem exportFeatures = new JMenuItem();
297
298   protected JPanel statusPanel = new JPanel();
299
300   GridLayout gridLayout1 = new GridLayout();
301
302   JMenu jMenu3 = new JMenu();
303
304   JMenuItem showAllSeqs = new JMenuItem();
305
306   JMenuItem showAllColumns = new JMenuItem();
307
308   JMenu hideMenu = new JMenu();
309
310   JMenuItem hideSelSequences = new JMenuItem();
311
312   JMenuItem hideSelColumns = new JMenuItem();
313
314   JMenuItem hideAllButSelection = new JMenuItem();
315
316   JMenuItem hideAllSelection = new JMenuItem();
317
318   JMenuItem showAllhidden = new JMenuItem();
319
320   protected JMenuItem showAllSeqAnnotations = new JMenuItem();
321
322   protected JMenuItem hideAllSeqAnnotations = new JMenuItem();
323
324   protected JMenuItem showAllAlAnnotations = new JMenuItem();
325
326   protected JMenuItem hideAllAlAnnotations = new JMenuItem();
327
328   protected JCheckBoxMenuItem sortAnnBySequence = new JCheckBoxMenuItem();
329
330   protected JCheckBoxMenuItem sortAnnByLabel = new JCheckBoxMenuItem();
331
332   protected JCheckBoxMenuItem hiddenMarkers = new JCheckBoxMenuItem();
333
334   JMenuItem invertColSel = new JMenuItem();
335
336   protected JTabbedPane tabbedPane = new JTabbedPane();
337
338   JMenuItem save = new JMenuItem();
339
340   protected JMenuItem reload = new JMenuItem();
341
342   JMenuItem newView = new JMenuItem();
343
344   JMenuItem textColour = new JMenuItem();
345
346   JMenu formatMenu = new JMenu();
347
348   JMenu selectMenu = new JMenu();
349
350   protected JCheckBoxMenuItem idRightAlign = new JCheckBoxMenuItem();
351
352   protected JCheckBoxMenuItem centreColumnLabelsMenuItem = new JCheckBoxMenuItem();
353
354   protected JCheckBoxMenuItem followHighlightMenuItem = new JCheckBoxMenuItem();
355
356   protected JMenuItem gatherViews = new JMenuItem();
357
358   protected JMenuItem expandViews = new JMenuItem();
359
360   JMenuItem pageSetup = new JMenuItem();
361
362   JMenuItem alignmentProperties = new JMenuItem();
363
364   JMenu tooltipSettingsMenu = new JMenu();
365
366   private JMenuItem justifyLeftMenuItem = new JMenuItem();
367
368   private JMenuItem justifyRightMenuItem = new JMenuItem();
369
370   JMenu autoAnnMenu = new JMenu();
371
372   protected JCheckBoxMenuItem showGroupConsensus = new JCheckBoxMenuItem();
373
374   protected JCheckBoxMenuItem showGroupConservation = new JCheckBoxMenuItem();
375
376   protected JCheckBoxMenuItem showConsensusHistogram = new JCheckBoxMenuItem();
377
378   protected JCheckBoxMenuItem showSequenceLogo = new JCheckBoxMenuItem();
379
380   protected JCheckBoxMenuItem normaliseSequenceLogo = new JCheckBoxMenuItem();
381
382   protected JCheckBoxMenuItem applyAutoAnnotationSettings = new JCheckBoxMenuItem();
383
384   protected JRadioButtonMenuItem showAutoFirst = new JRadioButtonMenuItem();
385
386   protected JRadioButtonMenuItem showAutoLast = new JRadioButtonMenuItem();
387
388   private JMenuItem grpsFromSelection = new JMenuItem();
389
390   private SequenceAnnotationOrder annotationSortOrder;
391
392   private boolean showAutoCalculatedAbove = false;
393
394   private Map<KeyStroke, JMenuItem> accelerators = new HashMap<KeyStroke, JMenuItem>();
395
396   public GAlignFrame()
397   {
398     try
399     {
400       jbInit();
401       setJMenuBar(alignFrameMenuBar);
402
403       // dynamically fill save as menu with available formats
404       for (int i = 0; i < jalview.io.FormatAdapter.WRITEABLE_FORMATS.length; i++)
405       {
406         JMenuItem item = new JMenuItem(
407                 jalview.io.FormatAdapter.WRITEABLE_FORMATS[i]);
408
409         item.addActionListener(new java.awt.event.ActionListener()
410         {
411           @Override
412           public void actionPerformed(ActionEvent e)
413           {
414             outputText_actionPerformed(e);
415           }
416         });
417
418         outputTextboxMenu.add(item);
419       }
420     } catch (Exception e)
421     {
422       System.err.println(e.toString());
423     }
424
425     if (!new jalview.util.Platform().isAMac())
426     {
427       closeMenuItem.setMnemonic('C');
428       outputTextboxMenu.setMnemonic('T');
429       undoMenuItem.setMnemonic('Z');
430       redoMenuItem.setMnemonic('0');
431       copy.setMnemonic('C');
432       cut.setMnemonic('U');
433       pasteMenu.setMnemonic('P');
434       reload.setMnemonic('R');
435     }
436
437     // setKeyBindings();
438
439     if (jalview.gui.UserDefinedColours.getUserColourSchemes() != null)
440     {
441       java.util.Enumeration userColours = jalview.gui.UserDefinedColours
442               .getUserColourSchemes().keys();
443
444       while (userColours.hasMoreElements())
445       {
446         final JRadioButtonMenuItem radioItem = new JRadioButtonMenuItem(
447                 userColours.nextElement().toString());
448         radioItem.setName("USER_DEFINED");
449         radioItem.addMouseListener(new MouseAdapter()
450         {
451           @Override
452           public void mousePressed(MouseEvent evt)
453           {
454             if (evt.isControlDown()
455                     || SwingUtilities.isRightMouseButton(evt))
456             {
457               radioItem.removeActionListener(radioItem.getActionListeners()[0]);
458
459               int option = JOptionPane.showInternalConfirmDialog(
460                       jalview.gui.Desktop.desktop,
461                       MessageManager
462                               .getString("label.remove_from_default_list"),
463                       MessageManager
464                               .getString("label.remove_user_defined_colour"),
465                       JOptionPane.YES_NO_OPTION);
466               if (option == JOptionPane.YES_OPTION)
467               {
468                 jalview.gui.UserDefinedColours
469                         .removeColourFromDefaults(radioItem.getText());
470                 colourMenu.remove(radioItem);
471               }
472               else
473               {
474                 radioItem.addActionListener(new ActionListener()
475                 {
476                   @Override
477                   public void actionPerformed(ActionEvent evt)
478                   {
479                     userDefinedColour_actionPerformed(evt);
480                   }
481                 });
482               }
483             }
484           }
485         });
486         radioItem.addActionListener(new ActionListener()
487         {
488           @Override
489           public void actionPerformed(ActionEvent evt)
490           {
491             userDefinedColour_actionPerformed(evt);
492           }
493         });
494         colourMenu.insert(radioItem, 15);
495         colours.add(radioItem);
496       }
497     }
498     colours.add(noColourmenuItem);
499     colours.add(clustalColour);
500     colours.add(zappoColour);
501     colours.add(taylorColour);
502     colours.add(hydrophobicityColour);
503     colours.add(helixColour);
504     colours.add(strandColour);
505     colours.add(turnColour);
506     colours.add(buriedColour);
507     colours.add(userDefinedColour);
508     colours.add(PIDColour);
509     colours.add(BLOSUM62Colour);
510     colours.add(nucleotideColour);
511     colours.add(purinePyrimidineColour);
512     // colours.add(covariationColour);
513     colours.add(tcoffeeColour);
514     colours.add(RNAInteractionColour);
515     setColourSelected(jalview.bin.Cache
516             .getDefault("DEFAULT_COLOUR", "None"));
517
518   }
519
520   /**
521    * Set key bindings (recommended for Swing over key accelerators).
522    */
523   private void setKeyBindings()
524   {
525     /*
526      * Experiment using Cmd-Alt/K (unmapped) as a synonym for Cmd-Alt/I (invert
527      * column selection)
528      */
529     this.getInputMap(JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT).put(
530             KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_K, Toolkit
531                     .getDefaultToolkit().getMenuShortcutKeyMask()
532                     | java.awt.event.KeyEvent.ALT_MASK, false),
533             "INV_SEQ_SEL");
534     this.getActionMap().put("INV_SEQ_SEL", new AbstractAction()
535     {
536       @Override
537       public void actionPerformed(ActionEvent e)
538       {
539         invertColSel_actionPerformed(null);
540       }
541     });
542   }
543
544   public void setColourSelected(String defaultColour)
545   {
546
547     if (defaultColour != null)
548     {
549       int index = ColourSchemeProperty
550               .getColourIndexFromName(defaultColour);
551
552       switch (index)
553       {
554       case ColourSchemeProperty.CLUSTAL:
555         clustalColour.setSelected(true);
556
557         break;
558
559       case ColourSchemeProperty.BLOSUM:
560         BLOSUM62Colour.setSelected(true);
561
562         break;
563
564       case ColourSchemeProperty.PID:
565         PIDColour.setSelected(true);
566
567         break;
568
569       case ColourSchemeProperty.ZAPPO:
570         zappoColour.setSelected(true);
571
572         break;
573
574       case ColourSchemeProperty.TAYLOR:
575         taylorColour.setSelected(true);
576         break;
577
578       case ColourSchemeProperty.HYDROPHOBIC:
579         hydrophobicityColour.setSelected(true);
580
581         break;
582
583       case ColourSchemeProperty.HELIX:
584         helixColour.setSelected(true);
585
586         break;
587
588       case ColourSchemeProperty.STRAND:
589         strandColour.setSelected(true);
590
591         break;
592
593       case ColourSchemeProperty.TURN:
594         turnColour.setSelected(true);
595
596         break;
597
598       case ColourSchemeProperty.BURIED:
599         buriedColour.setSelected(true);
600
601         break;
602
603       case ColourSchemeProperty.NUCLEOTIDE:
604         nucleotideColour.setSelected(true);
605
606         break;
607
608       case ColourSchemeProperty.TCOFFEE:
609         tcoffeeColour.setSelected(true);
610         break;
611
612       case ColourSchemeProperty.PURINEPYRIMIDINE:
613         purinePyrimidineColour.setSelected(true);
614
615         break;
616
617       case ColourSchemeProperty.RNAINTERACTION:
618         RNAInteractionColour.setSelected(true);
619
620         break;
621       /*
622        * case ColourSchemeProperty.COVARIATION:
623        * covariationColour.setSelected(true);
624        * 
625        * break;
626        */
627       case ColourSchemeProperty.USER_DEFINED:
628         userDefinedColour.setSelected(true);
629
630         break;
631       case ColourSchemeProperty.NONE:
632       default:
633         noColourmenuItem.setSelected(true);
634         break;
635
636       }
637     }
638
639   }
640
641   private void jbInit() throws Exception
642   {
643     fileMenu.setText(MessageManager.getString("action.file"));
644     saveAs.setText(MessageManager.getString("action.save_as") + "...");
645     KeyStroke keyStroke = javax.swing.KeyStroke.getKeyStroke(
646             java.awt.event.KeyEvent.VK_S, Toolkit.getDefaultToolkit()
647                     .getMenuShortcutKeyMask()
648                     | java.awt.event.KeyEvent.SHIFT_MASK, false);
649     saveAs.setAccelerator(keyStroke);
650     accelerators.put(keyStroke, saveAs);
651     saveAs.addActionListener(new ActionListener()
652     {
653       @Override
654       public void actionPerformed(ActionEvent e)
655       {
656         saveAs_actionPerformed(e);
657       }
658     });
659     closeMenuItem.setText(MessageManager.getString("action.close"));
660     closeMenuItem.setAccelerator(javax.swing.KeyStroke.getKeyStroke(
661             java.awt.event.KeyEvent.VK_W, Toolkit.getDefaultToolkit()
662                     .getMenuShortcutKeyMask(), false));
663     closeMenuItem.addActionListener(new java.awt.event.ActionListener()
664     {
665       @Override
666       public void actionPerformed(ActionEvent e)
667       {
668         closeMenuItem_actionPerformed(false);
669       }
670     });
671     editMenu.setText(MessageManager.getString("action.edit"));
672     viewMenu.setText(MessageManager.getString("action.view"));
673     annotationsMenu.setText(MessageManager.getString("action.annotations"));
674     colourMenu.setText(MessageManager.getString("action.colour"));
675     calculateMenu.setText(MessageManager.getString("action.calculate"));
676     webService.setText(MessageManager.getString("action.web_service"));
677     selectAllSequenceMenuItem.setText(MessageManager
678             .getString("action.select_all"));
679     selectAllSequenceMenuItem.setAccelerator(javax.swing.KeyStroke
680             .getKeyStroke(java.awt.event.KeyEvent.VK_A, Toolkit
681                     .getDefaultToolkit().getMenuShortcutKeyMask(), false));
682     selectAllSequenceMenuItem
683             .addActionListener(new java.awt.event.ActionListener()
684             {
685               @Override
686               public void actionPerformed(ActionEvent e)
687               {
688                 selectAllSequenceMenuItem_actionPerformed(e);
689               }
690             });
691     deselectAllSequenceMenuItem.setText(MessageManager
692             .getString("action.deselect_all"));
693     deselectAllSequenceMenuItem.setAccelerator(javax.swing.KeyStroke
694             .getKeyStroke(java.awt.event.KeyEvent.VK_ESCAPE, 0, false));
695     deselectAllSequenceMenuItem
696             .addActionListener(new java.awt.event.ActionListener()
697             {
698               @Override
699               public void actionPerformed(ActionEvent e)
700               {
701                 deselectAllSequenceMenuItem_actionPerformed(e);
702               }
703             });
704     invertSequenceMenuItem.setText(MessageManager
705             .getString("action.invert_sequence_selection"));
706     keyStroke = javax.swing.KeyStroke
707             .getKeyStroke(java.awt.event.KeyEvent.VK_I, Toolkit
708                     .getDefaultToolkit().getMenuShortcutKeyMask(), false);
709     invertSequenceMenuItem.setAccelerator(keyStroke);
710     accelerators.put(keyStroke, invertSequenceMenuItem);
711     invertSequenceMenuItem
712             .addActionListener(new java.awt.event.ActionListener()
713             {
714               @Override
715               public void actionPerformed(ActionEvent e)
716               {
717                 invertSequenceMenuItem_actionPerformed(e);
718               }
719             });
720     grpsFromSelection.setText(MessageManager
721             .getString("action.make_groups_selection"));
722     grpsFromSelection.addActionListener(new java.awt.event.ActionListener()
723     {
724       @Override
725       public void actionPerformed(ActionEvent e)
726       {
727         makeGrpsFromSelection_actionPerformed(e);
728       }
729     });
730     expandAlignment.setText(MessageManager
731             .getString("action.view_flanking_regions"));
732     expandAlignment.setToolTipText(MessageManager
733             .getString("label.view_flanking_regions"));
734     expandAlignment.addActionListener(new java.awt.event.ActionListener()
735     {
736       @Override
737       public void actionPerformed(ActionEvent e)
738       {
739         expand_newalign(e);
740       }
741     });
742     remove2LeftMenuItem.setText(MessageManager
743             .getString("action.remove_left"));
744     remove2LeftMenuItem.setAccelerator(javax.swing.KeyStroke.getKeyStroke(
745             java.awt.event.KeyEvent.VK_L, Toolkit.getDefaultToolkit()
746                     .getMenuShortcutKeyMask(), false));
747     remove2LeftMenuItem
748             .addActionListener(new java.awt.event.ActionListener()
749             {
750               @Override
751               public void actionPerformed(ActionEvent e)
752               {
753                 remove2LeftMenuItem_actionPerformed(e);
754               }
755             });
756     remove2RightMenuItem.setText(MessageManager
757             .getString("action.remove_right"));
758     remove2RightMenuItem.setAccelerator(javax.swing.KeyStroke.getKeyStroke(
759             java.awt.event.KeyEvent.VK_R, Toolkit.getDefaultToolkit()
760                     .getMenuShortcutKeyMask(), false));
761     remove2RightMenuItem
762             .addActionListener(new java.awt.event.ActionListener()
763             {
764               @Override
765               public void actionPerformed(ActionEvent e)
766               {
767                 remove2RightMenuItem_actionPerformed(e);
768               }
769             });
770     removeGappedColumnMenuItem.setText(MessageManager
771             .getString("action.remove_empty_columns"));
772     removeGappedColumnMenuItem.setAccelerator(javax.swing.KeyStroke
773             .getKeyStroke(java.awt.event.KeyEvent.VK_E, Toolkit
774                     .getDefaultToolkit().getMenuShortcutKeyMask(), false));
775     removeGappedColumnMenuItem
776             .addActionListener(new java.awt.event.ActionListener()
777             {
778               @Override
779               public void actionPerformed(ActionEvent e)
780               {
781                 removeGappedColumnMenuItem_actionPerformed(e);
782               }
783             });
784     removeAllGapsMenuItem.setText(MessageManager
785             .getString("action.remove_all_gaps"));
786     removeAllGapsMenuItem.setAccelerator(javax.swing.KeyStroke
787             .getKeyStroke(java.awt.event.KeyEvent.VK_E, Toolkit
788                     .getDefaultToolkit().getMenuShortcutKeyMask()
789                     | java.awt.event.KeyEvent.SHIFT_MASK, false));
790     removeAllGapsMenuItem
791             .addActionListener(new java.awt.event.ActionListener()
792             {
793               @Override
794               public void actionPerformed(ActionEvent e)
795               {
796                 removeAllGapsMenuItem_actionPerformed(e);
797               }
798             });
799     justifyLeftMenuItem.setText(MessageManager
800             .getString("action.left_justify_alignment"));
801     justifyLeftMenuItem
802             .addActionListener(new java.awt.event.ActionListener()
803             {
804               @Override
805               public void actionPerformed(ActionEvent e)
806               {
807                 justifyLeftMenuItem_actionPerformed(e);
808               }
809             });
810     justifyRightMenuItem.setText(MessageManager
811             .getString("action.right_justify_alignment"));
812     justifyRightMenuItem
813             .addActionListener(new java.awt.event.ActionListener()
814             {
815               @Override
816               public void actionPerformed(ActionEvent e)
817               {
818                 justifyRightMenuItem_actionPerformed(e);
819               }
820             });
821     viewBoxesMenuItem.setText(MessageManager.getString("action.boxes"));
822     viewBoxesMenuItem.setState(true);
823     viewBoxesMenuItem.addActionListener(new java.awt.event.ActionListener()
824     {
825       @Override
826       public void actionPerformed(ActionEvent e)
827       {
828         viewBoxesMenuItem_actionPerformed(e);
829       }
830     });
831     viewTextMenuItem.setText(MessageManager.getString("action.text"));
832     viewTextMenuItem.setState(true);
833     viewTextMenuItem.addActionListener(new java.awt.event.ActionListener()
834     {
835       @Override
836       public void actionPerformed(ActionEvent e)
837       {
838         viewTextMenuItem_actionPerformed(e);
839       }
840     });
841     showNonconservedMenuItem.setText(MessageManager
842             .getString("label.show_non_conversed"));
843     showNonconservedMenuItem.setState(false);
844     showNonconservedMenuItem
845             .addActionListener(new java.awt.event.ActionListener()
846             {
847               @Override
848               public void actionPerformed(ActionEvent e)
849               {
850                 showUnconservedMenuItem_actionPerformed(e);
851               }
852             });
853     sortPairwiseMenuItem.setText(MessageManager
854             .getString("action.by_pairwise_id"));
855     sortPairwiseMenuItem
856             .addActionListener(new java.awt.event.ActionListener()
857             {
858               @Override
859               public void actionPerformed(ActionEvent e)
860               {
861                 sortPairwiseMenuItem_actionPerformed(e);
862               }
863             });
864     sortIDMenuItem.setText(MessageManager.getString("action.by_id"));
865     sortIDMenuItem.addActionListener(new java.awt.event.ActionListener()
866     {
867       @Override
868       public void actionPerformed(ActionEvent e)
869       {
870         sortIDMenuItem_actionPerformed(e);
871       }
872     });
873     sortLengthMenuItem
874             .setText(MessageManager.getString("action.by_length"));
875     sortLengthMenuItem
876             .addActionListener(new java.awt.event.ActionListener()
877             {
878               @Override
879               public void actionPerformed(ActionEvent e)
880               {
881                 sortLengthMenuItem_actionPerformed(e);
882               }
883             });
884     sortGroupMenuItem.setText(MessageManager.getString("action.by_group"));
885     sortGroupMenuItem.addActionListener(new java.awt.event.ActionListener()
886     {
887       @Override
888       public void actionPerformed(ActionEvent e)
889       {
890         sortGroupMenuItem_actionPerformed(e);
891       }
892     });
893     removeRedundancyMenuItem.setText(MessageManager
894             .getString("action.remove_redundancy").concat("..."));
895     removeRedundancyMenuItem.setAccelerator(javax.swing.KeyStroke
896             .getKeyStroke(java.awt.event.KeyEvent.VK_D, Toolkit
897                     .getDefaultToolkit().getMenuShortcutKeyMask(), false));
898     removeRedundancyMenuItem
899             .addActionListener(new java.awt.event.ActionListener()
900             {
901               @Override
902               public void actionPerformed(ActionEvent e)
903               {
904                 removeRedundancyMenuItem_actionPerformed(e);
905               }
906             });
907     pairwiseAlignmentMenuItem.setText(MessageManager
908             .getString("action.pairwise_alignment"));
909     pairwiseAlignmentMenuItem
910             .addActionListener(new java.awt.event.ActionListener()
911             {
912               @Override
913               public void actionPerformed(ActionEvent e)
914               {
915                 pairwiseAlignmentMenuItem_actionPerformed(e);
916               }
917             });
918     PCAMenuItem.setText(MessageManager
919             .getString("label.principal_component_analysis"));
920     PCAMenuItem.addActionListener(new java.awt.event.ActionListener()
921     {
922       @Override
923       public void actionPerformed(ActionEvent e)
924       {
925         PCAMenuItem_actionPerformed(e);
926       }
927     });
928     averageDistanceTreeMenuItem.setText(MessageManager
929             .getString("label.average_distance_identity"));
930     averageDistanceTreeMenuItem
931             .addActionListener(new java.awt.event.ActionListener()
932             {
933               @Override
934               public void actionPerformed(ActionEvent e)
935               {
936                 averageDistanceTreeMenuItem_actionPerformed(e);
937               }
938             });
939     neighbourTreeMenuItem.setText(MessageManager
940             .getString("label.neighbour_joining_identity"));
941     neighbourTreeMenuItem
942             .addActionListener(new java.awt.event.ActionListener()
943             {
944               @Override
945               public void actionPerformed(ActionEvent e)
946               {
947                 neighbourTreeMenuItem_actionPerformed(e);
948               }
949             });
950     this.getContentPane().setLayout(borderLayout1);
951     alignFrameMenuBar.setFont(new java.awt.Font("Verdana", 0, 11));
952     statusBar.setBackground(Color.white);
953     statusBar.setFont(new java.awt.Font("Verdana", 0, 11));
954     statusBar.setBorder(BorderFactory.createLineBorder(Color.black));
955     statusBar.setText(MessageManager.getString("label.status_bar"));
956     outputTextboxMenu.setText(MessageManager
957             .getString("label.out_to_textbox"));
958     clustalColour.setText(MessageManager.getString("label.clustalx"));
959
960     clustalColour.addActionListener(new java.awt.event.ActionListener()
961     {
962       @Override
963       public void actionPerformed(ActionEvent e)
964       {
965         clustalColour_actionPerformed(e);
966       }
967     });
968     zappoColour.setText(MessageManager.getString("label.zappo"));
969     zappoColour.addActionListener(new java.awt.event.ActionListener()
970     {
971       @Override
972       public void actionPerformed(ActionEvent e)
973       {
974         zappoColour_actionPerformed(e);
975       }
976     });
977     taylorColour.setText(MessageManager.getString("label.taylor"));
978     taylorColour.addActionListener(new java.awt.event.ActionListener()
979     {
980       @Override
981       public void actionPerformed(ActionEvent e)
982       {
983         taylorColour_actionPerformed(e);
984       }
985     });
986     hydrophobicityColour.setText(MessageManager
987             .getString("label.hydrophobicity"));
988     hydrophobicityColour
989             .addActionListener(new java.awt.event.ActionListener()
990             {
991               @Override
992               public void actionPerformed(ActionEvent e)
993               {
994                 hydrophobicityColour_actionPerformed(e);
995               }
996             });
997     helixColour.setText(MessageManager.getString("label.helix_propensity"));
998     helixColour.addActionListener(new java.awt.event.ActionListener()
999     {
1000       @Override
1001       public void actionPerformed(ActionEvent e)
1002       {
1003         helixColour_actionPerformed(e);
1004       }
1005     });
1006     strandColour.setText(MessageManager
1007             .getString("label.strand_propensity"));
1008     strandColour.addActionListener(new java.awt.event.ActionListener()
1009     {
1010       @Override
1011       public void actionPerformed(ActionEvent e)
1012       {
1013         strandColour_actionPerformed(e);
1014       }
1015     });
1016     turnColour.setText(MessageManager.getString("label.turn_propensity"));
1017     turnColour.addActionListener(new java.awt.event.ActionListener()
1018     {
1019       @Override
1020       public void actionPerformed(ActionEvent e)
1021       {
1022         turnColour_actionPerformed(e);
1023       }
1024     });
1025     buriedColour.setText(MessageManager.getString("label.buried_index"));
1026     buriedColour.addActionListener(new java.awt.event.ActionListener()
1027     {
1028       @Override
1029       public void actionPerformed(ActionEvent e)
1030       {
1031         buriedColour_actionPerformed(e);
1032       }
1033     });
1034     userDefinedColour.setText(MessageManager
1035             .getString("action.user_defined"));
1036     userDefinedColour.addActionListener(new java.awt.event.ActionListener()
1037     {
1038       @Override
1039       public void actionPerformed(ActionEvent e)
1040       {
1041         userDefinedColour_actionPerformed(e);
1042       }
1043     });
1044     PIDColour
1045             .setText(MessageManager.getString("label.percentage_identity"));
1046     PIDColour.addActionListener(new java.awt.event.ActionListener()
1047     {
1048       @Override
1049       public void actionPerformed(ActionEvent e)
1050       {
1051         PIDColour_actionPerformed(e);
1052       }
1053     });
1054     BLOSUM62Colour
1055             .setText(MessageManager.getString("label.blosum62_score"));
1056     BLOSUM62Colour.addActionListener(new java.awt.event.ActionListener()
1057     {
1058       @Override
1059       public void actionPerformed(ActionEvent e)
1060       {
1061         BLOSUM62Colour_actionPerformed(e);
1062       }
1063     });
1064     nucleotideColour.setText(MessageManager.getString("label.nucleotide"));
1065     nucleotideColour.addActionListener(new java.awt.event.ActionListener()
1066     {
1067       @Override
1068       public void actionPerformed(ActionEvent e)
1069       {
1070         nucleotideColour_actionPerformed(e);
1071       }
1072     });
1073
1074     purinePyrimidineColour.setText(MessageManager
1075             .getString("label.purine_pyrimidine"));
1076     purinePyrimidineColour
1077             .addActionListener(new java.awt.event.ActionListener()
1078             {
1079               @Override
1080               public void actionPerformed(ActionEvent e)
1081               {
1082                 purinePyrimidineColour_actionPerformed(e);
1083               }
1084             });
1085
1086     RNAInteractionColour.setText("RNA Interaction type");
1087     RNAInteractionColour
1088             .addActionListener(new java.awt.event.ActionListener()
1089             {
1090               @Override
1091               public void actionPerformed(ActionEvent e)
1092               {
1093                 RNAInteractionColour_actionPerformed(e);
1094               }
1095             });
1096     /*
1097      * covariationColour.setText("Covariation");
1098      * covariationColour.addActionListener(new java.awt.event.ActionListener() {
1099      * public void actionPerformed(ActionEvent e) {
1100      * covariationColour_actionPerformed(e); } });
1101      */
1102
1103     avDistanceTreeBlosumMenuItem.setText(MessageManager
1104             .getString("label.average_distance_bloslum62"));
1105     avDistanceTreeBlosumMenuItem
1106             .addActionListener(new java.awt.event.ActionListener()
1107             {
1108               @Override
1109               public void actionPerformed(ActionEvent e)
1110               {
1111                 avTreeBlosumMenuItem_actionPerformed(e);
1112               }
1113             });
1114     njTreeBlosumMenuItem.setText(MessageManager
1115             .getString("label.neighbour_blosum62"));
1116     njTreeBlosumMenuItem
1117             .addActionListener(new java.awt.event.ActionListener()
1118             {
1119               @Override
1120               public void actionPerformed(ActionEvent e)
1121               {
1122                 njTreeBlosumMenuItem_actionPerformed(e);
1123               }
1124             });
1125     annotationPanelMenuItem.setActionCommand("");
1126     annotationPanelMenuItem.setText(MessageManager
1127             .getString("label.show_annotations"));
1128     annotationPanelMenuItem.setState(Cache.getDefault("SHOW_ANNOTATIONS",
1129             true));
1130     annotationPanelMenuItem.addActionListener(new ActionListener()
1131     {
1132       @Override
1133       public void actionPerformed(ActionEvent e)
1134       {
1135         annotationPanelMenuItem_actionPerformed(e);
1136       }
1137     });
1138     showAllAlAnnotations.setText(MessageManager
1139             .getString("label.show_all_al_annotations"));
1140     final boolean isAnnotationPanelShown = annotationPanelMenuItem
1141             .getState();
1142     showAllAlAnnotations.setEnabled(isAnnotationPanelShown);
1143     showAllAlAnnotations.addActionListener(new ActionListener()
1144     {
1145       @Override
1146       public void actionPerformed(ActionEvent e)
1147       {
1148         showAllAnnotations_actionPerformed(false, true);
1149       }
1150     });
1151     hideAllAlAnnotations.setText(MessageManager
1152             .getString("label.hide_all_al_annotations"));
1153     hideAllAlAnnotations.setEnabled(isAnnotationPanelShown);
1154     hideAllAlAnnotations.addActionListener(new ActionListener()
1155     {
1156       @Override
1157       public void actionPerformed(ActionEvent e)
1158       {
1159         hideAllAnnotations_actionPerformed(false, true);
1160       }
1161     });
1162     showAllSeqAnnotations.setText(MessageManager
1163             .getString("label.show_all_seq_annotations"));
1164     showAllSeqAnnotations.setEnabled(isAnnotationPanelShown);
1165     showAllSeqAnnotations.addActionListener(new ActionListener()
1166     {
1167       @Override
1168       public void actionPerformed(ActionEvent e)
1169       {
1170         showAllAnnotations_actionPerformed(true, false);
1171       }
1172     });
1173     hideAllSeqAnnotations.setText(MessageManager
1174             .getString("label.hide_all_seq_annotations"));
1175     hideAllSeqAnnotations.setEnabled(isAnnotationPanelShown);
1176     hideAllSeqAnnotations.addActionListener(new ActionListener()
1177     {
1178       @Override
1179       public void actionPerformed(ActionEvent e)
1180       {
1181         hideAllAnnotations_actionPerformed(true, false);
1182       }
1183     });
1184     SequenceAnnotationOrder sortAnnotationsBy = SequenceAnnotationOrder
1185             .valueOf(Cache.getDefault(Preferences.SORT_ANNOTATIONS,
1186                     SequenceAnnotationOrder.NONE.name()));
1187     sortAnnBySequence.setText(MessageManager
1188             .getString("label.sort_annotations_by_sequence"));
1189     sortAnnBySequence
1190             .setSelected(sortAnnotationsBy == SequenceAnnotationOrder.SEQUENCE_AND_LABEL);
1191     sortAnnBySequence.addActionListener(new ActionListener()
1192     {
1193       @Override
1194       public void actionPerformed(ActionEvent e)
1195       {
1196         boolean newState = sortAnnBySequence.getState();
1197         sortAnnByLabel.setSelected(false);
1198         setAnnotationSortOrder(newState ? SequenceAnnotationOrder.SEQUENCE_AND_LABEL
1199                 : SequenceAnnotationOrder.NONE);
1200         sortAnnotations_actionPerformed();
1201       }
1202     });
1203     sortAnnByLabel.setText(MessageManager
1204             .getString("label.sort_annotations_by_label"));
1205     sortAnnByLabel
1206             .setSelected(sortAnnotationsBy == SequenceAnnotationOrder.LABEL_AND_SEQUENCE);
1207     sortAnnByLabel.addActionListener(new ActionListener()
1208     {
1209       @Override
1210       public void actionPerformed(ActionEvent e)
1211       {
1212         boolean newState = sortAnnByLabel.getState();
1213         sortAnnBySequence.setSelected(false);
1214         setAnnotationSortOrder(newState ? SequenceAnnotationOrder.LABEL_AND_SEQUENCE
1215                 : SequenceAnnotationOrder.NONE);
1216         sortAnnotations_actionPerformed();
1217       }
1218     });
1219     colourTextMenuItem.setText(MessageManager
1220             .getString("label.colour_text"));
1221     colourTextMenuItem
1222             .addActionListener(new java.awt.event.ActionListener()
1223             {
1224               @Override
1225               public void actionPerformed(ActionEvent e)
1226               {
1227                 colourTextMenuItem_actionPerformed(e);
1228               }
1229             });
1230     htmlMenuItem.setText(MessageManager.getString("label.html"));
1231     htmlMenuItem.addActionListener(new java.awt.event.ActionListener()
1232     {
1233       @Override
1234       public void actionPerformed(ActionEvent e)
1235       {
1236         htmlMenuItem_actionPerformed(e);
1237       }
1238     });
1239     overviewMenuItem.setText(MessageManager
1240             .getString("label.overview_window"));
1241     overviewMenuItem.addActionListener(new java.awt.event.ActionListener()
1242     {
1243       @Override
1244       public void actionPerformed(ActionEvent e)
1245       {
1246         overviewMenuItem_actionPerformed(e);
1247       }
1248     });
1249     undoMenuItem.setEnabled(false);
1250     undoMenuItem.setText(MessageManager.getString("action.undo"));
1251     undoMenuItem.setAccelerator(javax.swing.KeyStroke.getKeyStroke(
1252             java.awt.event.KeyEvent.VK_Z, Toolkit.getDefaultToolkit()
1253                     .getMenuShortcutKeyMask(), false));
1254     undoMenuItem.addActionListener(new java.awt.event.ActionListener()
1255     {
1256       @Override
1257       public void actionPerformed(ActionEvent e)
1258       {
1259         undoMenuItem_actionPerformed(e);
1260       }
1261     });
1262     redoMenuItem.setEnabled(false);
1263     redoMenuItem.setText(MessageManager.getString("action.redo"));
1264     redoMenuItem.setAccelerator(javax.swing.KeyStroke.getKeyStroke(
1265             java.awt.event.KeyEvent.VK_Y, Toolkit.getDefaultToolkit()
1266                     .getMenuShortcutKeyMask(), false));
1267     redoMenuItem.addActionListener(new java.awt.event.ActionListener()
1268     {
1269       @Override
1270       public void actionPerformed(ActionEvent e)
1271       {
1272         redoMenuItem_actionPerformed(e);
1273       }
1274     });
1275     conservationMenuItem.setText(MessageManager
1276             .getString("action.by_conservation"));
1277     conservationMenuItem
1278             .addActionListener(new java.awt.event.ActionListener()
1279             {
1280               @Override
1281               public void actionPerformed(ActionEvent e)
1282               {
1283                 conservationMenuItem_actionPerformed(e);
1284               }
1285             });
1286     noColourmenuItem.setText(MessageManager.getString("label.none"));
1287     noColourmenuItem.addActionListener(new java.awt.event.ActionListener()
1288     {
1289       @Override
1290       public void actionPerformed(ActionEvent e)
1291       {
1292         noColourmenuItem_actionPerformed(e);
1293       }
1294     });
1295     wrapMenuItem.setText(MessageManager.getString("label.wrap"));
1296     wrapMenuItem.addActionListener(new java.awt.event.ActionListener()
1297     {
1298       @Override
1299       public void actionPerformed(ActionEvent e)
1300       {
1301         wrapMenuItem_actionPerformed(e);
1302       }
1303     });
1304     printMenuItem.setText(MessageManager.getString("action.print") + "...");
1305     printMenuItem.setAccelerator(javax.swing.KeyStroke.getKeyStroke(
1306             java.awt.event.KeyEvent.VK_P, Toolkit.getDefaultToolkit()
1307                     .getMenuShortcutKeyMask(), false));
1308     printMenuItem.addActionListener(new java.awt.event.ActionListener()
1309     {
1310       @Override
1311       public void actionPerformed(ActionEvent e)
1312       {
1313         printMenuItem_actionPerformed(e);
1314       }
1315     });
1316     renderGapsMenuItem
1317             .setText(MessageManager.getString("action.show_gaps"));
1318     renderGapsMenuItem.setState(true);
1319     renderGapsMenuItem
1320             .addActionListener(new java.awt.event.ActionListener()
1321             {
1322               @Override
1323               public void actionPerformed(ActionEvent e)
1324               {
1325                 renderGapsMenuItem_actionPerformed(e);
1326               }
1327             });
1328     findMenuItem.setText(MessageManager.getString("action.find"));
1329     findMenuItem.setAccelerator(javax.swing.KeyStroke.getKeyStroke(
1330             java.awt.event.KeyEvent.VK_F, Toolkit.getDefaultToolkit()
1331                     .getMenuShortcutKeyMask(), false));
1332     findMenuItem.setToolTipText(JvSwingUtils.wrapTooltip(true,
1333             MessageManager.getString("label.find_tip")));
1334     findMenuItem.addActionListener(new java.awt.event.ActionListener()
1335     {
1336       @Override
1337       public void actionPerformed(ActionEvent e)
1338       {
1339         findMenuItem_actionPerformed(e);
1340       }
1341     });
1342     abovePIDThreshold.setText(MessageManager
1343             .getString("label.above_identity_threshold"));
1344     abovePIDThreshold.addActionListener(new java.awt.event.ActionListener()
1345     {
1346       @Override
1347       public void actionPerformed(ActionEvent e)
1348       {
1349         abovePIDThreshold_actionPerformed(e);
1350       }
1351     });
1352     showSeqFeatures.setText(MessageManager
1353             .getString("label.show_sequence_features"));
1354     showSeqFeatures.addActionListener(new ActionListener()
1355     {
1356       @Override
1357       public void actionPerformed(ActionEvent actionEvent)
1358       {
1359         showSeqFeatures_actionPerformed(actionEvent);
1360       }
1361     });
1362     /*
1363      * showSeqFeaturesHeight.setText("Vary Sequence Feature Height");
1364      * showSeqFeaturesHeight.addActionListener(new ActionListener() { public
1365      * void actionPerformed(ActionEvent actionEvent) {
1366      * showSeqFeaturesHeight_actionPerformed(actionEvent); } });
1367      */
1368     showDbRefsMenuitem.setText(MessageManager
1369             .getString("label.show_database_refs"));
1370     showDbRefsMenuitem.addActionListener(new ActionListener()
1371     {
1372
1373       @Override
1374       public void actionPerformed(ActionEvent e)
1375       {
1376         showDbRefs_actionPerformed(e);
1377       }
1378
1379     });
1380     showNpFeatsMenuitem.setText(MessageManager
1381             .getString("label.show_non_positional_features"));
1382     showNpFeatsMenuitem.addActionListener(new ActionListener()
1383     {
1384
1385       @Override
1386       public void actionPerformed(ActionEvent e)
1387       {
1388         showNpFeats_actionPerformed(e);
1389       }
1390
1391     });
1392     showGroupConservation.setText(MessageManager
1393             .getString("label.group_conservation"));
1394     showGroupConservation.addActionListener(new ActionListener()
1395     {
1396
1397       @Override
1398       public void actionPerformed(ActionEvent e)
1399       {
1400         showGroupConservation_actionPerformed(e);
1401       }
1402
1403     });
1404
1405     showGroupConsensus.setText(MessageManager
1406             .getString("label.group_consensus"));
1407     showGroupConsensus.addActionListener(new ActionListener()
1408     {
1409
1410       @Override
1411       public void actionPerformed(ActionEvent e)
1412       {
1413         showGroupConsensus_actionPerformed(e);
1414       }
1415
1416     });
1417     showConsensusHistogram.setText(MessageManager
1418             .getString("label.show_consensus_histogram"));
1419     showConsensusHistogram.addActionListener(new ActionListener()
1420     {
1421
1422       @Override
1423       public void actionPerformed(ActionEvent e)
1424       {
1425         showConsensusHistogram_actionPerformed(e);
1426       }
1427
1428     });
1429     showSequenceLogo.setText(MessageManager
1430             .getString("label.show_consensus_logo"));
1431     showSequenceLogo.addActionListener(new ActionListener()
1432     {
1433
1434       @Override
1435       public void actionPerformed(ActionEvent e)
1436       {
1437         showSequenceLogo_actionPerformed(e);
1438       }
1439
1440     });
1441     normaliseSequenceLogo.setText(MessageManager
1442             .getString("label.norm_consensus_logo"));
1443     normaliseSequenceLogo.addActionListener(new ActionListener()
1444     {
1445
1446       @Override
1447       public void actionPerformed(ActionEvent e)
1448       {
1449         normaliseSequenceLogo_actionPerformed(e);
1450       }
1451
1452     });
1453     applyAutoAnnotationSettings.setText(MessageManager
1454             .getString("label.apply_all_groups"));
1455     applyAutoAnnotationSettings.setState(false);
1456     applyAutoAnnotationSettings.setVisible(true);
1457     applyAutoAnnotationSettings.addActionListener(new ActionListener()
1458     {
1459       @Override
1460       public void actionPerformed(ActionEvent e)
1461       {
1462         applyAutoAnnotationSettings_actionPerformed(e);
1463       }
1464     });
1465
1466     ButtonGroup buttonGroup = new ButtonGroup();
1467     buttonGroup.add(showAutoFirst);
1468     buttonGroup.add(showAutoLast);
1469     showAutoFirst.setText(MessageManager.getString("label.show_first"));
1470     showAutoFirst.setSelected(Cache.getDefault(
1471             Preferences.SHOW_AUTOCALC_ABOVE,
1472             false));
1473     showAutoFirst.addActionListener(new ActionListener()
1474     {
1475       @Override
1476       public void actionPerformed(ActionEvent e)
1477       {
1478         setShowAutoCalculatedAbove(showAutoFirst.isSelected());
1479         sortAnnotations_actionPerformed();
1480       }
1481     });
1482     showAutoLast.setText(MessageManager.getString("label.show_last"));
1483     showAutoLast.setSelected(!showAutoFirst.isSelected());
1484     showAutoLast.addActionListener(new ActionListener()
1485     {
1486       @Override
1487       public void actionPerformed(ActionEvent e)
1488       {
1489         setShowAutoCalculatedAbove(!showAutoLast.isSelected());
1490         sortAnnotations_actionPerformed();
1491       }
1492     });
1493
1494     nucleotideColour.setText(MessageManager.getString("label.nucleotide"));
1495     nucleotideColour.addActionListener(new java.awt.event.ActionListener()
1496     {
1497       @Override
1498       public void actionPerformed(ActionEvent e)
1499       {
1500         nucleotideColour_actionPerformed(e);
1501       }
1502     });
1503
1504     tcoffeeColour.setText(MessageManager.getString("label.tcoffee_scores"));
1505     tcoffeeColour.setEnabled(false);
1506     tcoffeeColour.addActionListener(new ActionListener()
1507     {
1508
1509       @Override
1510       public void actionPerformed(ActionEvent e)
1511       {
1512         tcoffeeColorScheme_actionPerformed(e);
1513       }
1514     });
1515
1516     deleteGroups
1517             .setText(MessageManager.getString("action.undefine_groups"));
1518     deleteGroups.setAccelerator(javax.swing.KeyStroke.getKeyStroke(
1519             java.awt.event.KeyEvent.VK_U, Toolkit.getDefaultToolkit()
1520                     .getMenuShortcutKeyMask(), false));
1521     deleteGroups.addActionListener(new java.awt.event.ActionListener()
1522     {
1523       @Override
1524       public void actionPerformed(ActionEvent e)
1525       {
1526         deleteGroups_actionPerformed(e);
1527       }
1528     });
1529     createGroup.setText(MessageManager.getString("action.create_groups"));
1530     createGroup.setAccelerator(javax.swing.KeyStroke.getKeyStroke(
1531             java.awt.event.KeyEvent.VK_G, Toolkit.getDefaultToolkit()
1532                     .getMenuShortcutKeyMask(), false));
1533     createGroup.addActionListener(new java.awt.event.ActionListener()
1534     {
1535       @Override
1536       public void actionPerformed(ActionEvent e)
1537       {
1538         createGroup_actionPerformed(e);
1539       }
1540     });
1541     unGroup.setText(MessageManager.getString("action.remove_group"));
1542     unGroup.setAccelerator(javax.swing.KeyStroke.getKeyStroke(
1543             java.awt.event.KeyEvent.VK_G, Toolkit.getDefaultToolkit()
1544                     .getMenuShortcutKeyMask()
1545                     | java.awt.event.KeyEvent.SHIFT_MASK, false));
1546     unGroup.addActionListener(new java.awt.event.ActionListener()
1547     {
1548       @Override
1549       public void actionPerformed(ActionEvent e)
1550       {
1551         unGroup_actionPerformed(e);
1552       }
1553     });
1554     copy.setText(MessageManager.getString("action.copy"));
1555     copy.setAccelerator(javax.swing.KeyStroke.getKeyStroke(
1556             java.awt.event.KeyEvent.VK_C, Toolkit.getDefaultToolkit()
1557                     .getMenuShortcutKeyMask(), false));
1558
1559     copy.addActionListener(new java.awt.event.ActionListener()
1560     {
1561       @Override
1562       public void actionPerformed(ActionEvent e)
1563       {
1564         copy_actionPerformed(e);
1565       }
1566     });
1567     cut.setText(MessageManager.getString("action.cut"));
1568     cut.setAccelerator(javax.swing.KeyStroke.getKeyStroke(
1569             java.awt.event.KeyEvent.VK_X, Toolkit.getDefaultToolkit()
1570                     .getMenuShortcutKeyMask(), false));
1571     cut.addActionListener(new java.awt.event.ActionListener()
1572     {
1573       @Override
1574       public void actionPerformed(ActionEvent e)
1575       {
1576         cut_actionPerformed(e);
1577       }
1578     });
1579     delete.setText(MessageManager.getString("action.delete"));
1580     delete.addActionListener(new java.awt.event.ActionListener()
1581     {
1582       @Override
1583       public void actionPerformed(ActionEvent e)
1584       {
1585         delete_actionPerformed(e);
1586       }
1587     });
1588     pasteMenu.setText(MessageManager.getString("action.paste"));
1589     pasteNew.setText(MessageManager.getString("label.to_new_alignment"));
1590     pasteNew.setAccelerator(javax.swing.KeyStroke.getKeyStroke(
1591             java.awt.event.KeyEvent.VK_V, Toolkit.getDefaultToolkit()
1592                     .getMenuShortcutKeyMask()
1593                     | java.awt.event.KeyEvent.SHIFT_MASK, false));
1594     pasteNew.addActionListener(new java.awt.event.ActionListener()
1595     {
1596       @Override
1597       public void actionPerformed(ActionEvent e)
1598       {
1599         pasteNew_actionPerformed(e);
1600       }
1601     });
1602     pasteThis.setText(MessageManager.getString("label.to_this_alignment"));
1603     pasteThis.setAccelerator(javax.swing.KeyStroke.getKeyStroke(
1604             java.awt.event.KeyEvent.VK_V, Toolkit.getDefaultToolkit()
1605                     .getMenuShortcutKeyMask(), false));
1606     pasteThis.addActionListener(new java.awt.event.ActionListener()
1607     {
1608       @Override
1609       public void actionPerformed(ActionEvent e)
1610       {
1611         pasteThis_actionPerformed(e);
1612       }
1613     });
1614     applyToAllGroups.setText(MessageManager
1615             .getString("label.apply_colour_to_all_groups"));
1616     applyToAllGroups.addActionListener(new java.awt.event.ActionListener()
1617     {
1618       @Override
1619       public void actionPerformed(ActionEvent e)
1620       {
1621         applyToAllGroups_actionPerformed(e);
1622       }
1623     });
1624     createPNG.addActionListener(new java.awt.event.ActionListener()
1625     {
1626       @Override
1627       public void actionPerformed(ActionEvent e)
1628       {
1629         createPNG(null);
1630       }
1631     });
1632     createPNG.setActionCommand(MessageManager
1633             .getString("label.save_png_image"));
1634     createPNG.setText("PNG");
1635
1636     font.setText(MessageManager.getString("action.font"));
1637     font.addActionListener(new java.awt.event.ActionListener()
1638     {
1639       @Override
1640       public void actionPerformed(ActionEvent e)
1641       {
1642         font_actionPerformed(e);
1643       }
1644     });
1645
1646     seqLimits.setText(MessageManager
1647             .getString("label.show_sequence_limits"));
1648     seqLimits.setState(jalview.bin.Cache.getDefault("SHOW_JVSUFFIX", true));
1649     seqLimits.addActionListener(new java.awt.event.ActionListener()
1650     {
1651       @Override
1652       public void actionPerformed(ActionEvent e)
1653       {
1654         seqLimit_actionPerformed(e);
1655       }
1656     });
1657     epsFile.setText("EPS");
1658     epsFile.addActionListener(new java.awt.event.ActionListener()
1659     {
1660       @Override
1661       public void actionPerformed(ActionEvent e)
1662       {
1663         createEPS(null);
1664       }
1665     });
1666
1667     createSVG.setText("SVG");
1668     createSVG.addActionListener(new java.awt.event.ActionListener()
1669     {
1670       @Override
1671       public void actionPerformed(ActionEvent e)
1672       {
1673         createSVG(null);
1674       }
1675     });
1676
1677     LoadtreeMenuItem.setActionCommand(MessageManager
1678             .getString("label.load_tree_for_sequence_set"));
1679     LoadtreeMenuItem.setText(MessageManager
1680             .getString("label.load_associated_tree"));
1681     LoadtreeMenuItem.addActionListener(new java.awt.event.ActionListener()
1682     {
1683       @Override
1684       public void actionPerformed(ActionEvent e)
1685       {
1686         LoadtreeMenuItem_actionPerformed(e);
1687       }
1688     });
1689
1690     scaleAbove.setVisible(false);
1691     scaleAbove.setText(MessageManager.getString("action.scale_above"));
1692     scaleAbove.addActionListener(new java.awt.event.ActionListener()
1693     {
1694       @Override
1695       public void actionPerformed(ActionEvent e)
1696       {
1697         scaleAbove_actionPerformed(e);
1698       }
1699     });
1700     scaleLeft.setVisible(false);
1701     scaleLeft.setSelected(true);
1702     scaleLeft.setText(MessageManager.getString("action.scale_left"));
1703     scaleLeft.addActionListener(new java.awt.event.ActionListener()
1704     {
1705       @Override
1706       public void actionPerformed(ActionEvent e)
1707       {
1708         scaleLeft_actionPerformed(e);
1709       }
1710     });
1711     scaleRight.setVisible(false);
1712     scaleRight.setSelected(true);
1713     scaleRight.setText(MessageManager.getString("action.scale_right"));
1714     scaleRight.addActionListener(new java.awt.event.ActionListener()
1715     {
1716       @Override
1717       public void actionPerformed(ActionEvent e)
1718       {
1719         scaleRight_actionPerformed(e);
1720       }
1721     });
1722     centreColumnLabelsMenuItem.setVisible(true);
1723     centreColumnLabelsMenuItem.setState(false);
1724     centreColumnLabelsMenuItem.setText(MessageManager
1725             .getString("label.centre_column_labels"));
1726     centreColumnLabelsMenuItem
1727             .addActionListener(new java.awt.event.ActionListener()
1728             {
1729               @Override
1730               public void actionPerformed(ActionEvent e)
1731               {
1732                 centreColumnLabels_actionPerformed(e);
1733               }
1734             });
1735     followHighlightMenuItem.setVisible(true);
1736     followHighlightMenuItem.setState(true);
1737     followHighlightMenuItem.setText(MessageManager
1738             .getString("label.automatic_scrolling"));
1739     followHighlightMenuItem.addActionListener(new ActionListener()
1740     {
1741
1742       @Override
1743       public void actionPerformed(ActionEvent e)
1744       {
1745         followHighlight_actionPerformed();
1746       }
1747
1748     });
1749
1750     modifyPID.setText(MessageManager
1751             .getString("label.modify_identity_thereshold"));
1752     modifyPID.addActionListener(new java.awt.event.ActionListener()
1753     {
1754       @Override
1755       public void actionPerformed(ActionEvent e)
1756       {
1757         modifyPID_actionPerformed(e);
1758       }
1759     });
1760     modifyConservation.setText(MessageManager
1761             .getString("label.modify_conservation_thereshold"));
1762     modifyConservation
1763             .addActionListener(new java.awt.event.ActionListener()
1764             {
1765               @Override
1766               public void actionPerformed(ActionEvent e)
1767               {
1768                 modifyConservation_actionPerformed(e);
1769               }
1770             });
1771     sortByTreeMenu
1772             .setText(MessageManager.getString("action.by_tree_order"));
1773     sort.setText(MessageManager.getString("action.sort"));
1774     sort.addMenuListener(new MenuListener()
1775     {
1776       @Override
1777       public void menuSelected(MenuEvent e)
1778       {
1779         buildTreeMenu();
1780       }
1781
1782       @Override
1783       public void menuDeselected(MenuEvent e)
1784       {
1785       }
1786
1787       @Override
1788       public void menuCanceled(MenuEvent e)
1789       {
1790       }
1791     });
1792     sortByAnnotScore.setText(MessageManager
1793             .getString("label.sort_by_score"));
1794     sort.add(sortByAnnotScore);
1795     sort.addMenuListener(new javax.swing.event.MenuListener()
1796     {
1797
1798       @Override
1799       public void menuCanceled(MenuEvent e)
1800       {
1801       }
1802
1803       @Override
1804       public void menuDeselected(MenuEvent e)
1805       {
1806       }
1807
1808       @Override
1809       public void menuSelected(MenuEvent e)
1810       {
1811         buildSortByAnnotationScoresMenu();
1812       }
1813     });
1814     sortByAnnotScore.setVisible(false);
1815
1816     calculateTree
1817             .setText(MessageManager.getString("action.calculate_tree"));
1818
1819     jMenu2.setText(MessageManager.getString("label.export_image"));
1820     padGapsMenuitem.setText(MessageManager.getString("label.pad_gaps"));
1821     padGapsMenuitem.setState(jalview.bin.Cache
1822             .getDefault("PAD_GAPS", false));
1823     padGapsMenuitem.addActionListener(new ActionListener()
1824     {
1825       @Override
1826       public void actionPerformed(ActionEvent e)
1827       {
1828         padGapsMenuitem_actionPerformed(e);
1829       }
1830     });
1831     vamsasStore.setVisible(false);
1832     vamsasStore.setText(MessageManager.getString("label.vamsas_store"));
1833     vamsasStore.addActionListener(new ActionListener()
1834     {
1835       @Override
1836       public void actionPerformed(ActionEvent e)
1837       {
1838         vamsasStore_actionPerformed(e);
1839       }
1840     });
1841     showTranslation.setText(MessageManager
1842             .getString("label.translate_cDNA"));
1843     showTranslation.addActionListener(new ActionListener()
1844     {
1845       @Override
1846       public void actionPerformed(ActionEvent e)
1847       {
1848         showTranslation_actionPerformed(e);
1849       }
1850     });
1851
1852     /*
1853      * cDNA menu options
1854      */
1855     cdna.setText(MessageManager.getString("label.cdna"));
1856     // link to available cDNA
1857     JMenuItem linkCdna = new JMenuItem(
1858             MessageManager.getString("label.link_cdna"));
1859     linkCdna.setToolTipText(JvSwingUtils.wrapTooltip(true,
1860             MessageManager.getString("label.link_cdna_tip")));
1861     linkCdna.addActionListener(new ActionListener()
1862     {
1863       @Override
1864       public void actionPerformed(ActionEvent e)
1865       {
1866         linkCdna_actionPerformed();
1867       }
1868     });
1869     cdna.add(linkCdna);
1870     // align linked cDNA
1871     JMenuItem alignCdna = new JMenuItem(
1872             MessageManager.getString("label.align_cdna"));
1873     alignCdna.setToolTipText(JvSwingUtils.wrapTooltip(true,
1874             MessageManager.getString("label.align_cdna_tip")));
1875     alignCdna.addActionListener(new ActionListener()
1876     {
1877       @Override
1878       public void actionPerformed(ActionEvent e)
1879       {
1880         alignCdna_actionPerformed();
1881       }
1882     });
1883     cdna.add(alignCdna);
1884
1885     // view alignment as cDNA (when known)
1886     JMenuItem viewAsCdna = new JMenuItem(
1887             MessageManager.getString("label.view_as_cdna"));
1888     viewAsCdna.setToolTipText(JvSwingUtils.wrapTooltip(true,
1889             MessageManager.getString("label.view_as_cdna_tip")));
1890     viewAsCdna.addActionListener(new ActionListener() {
1891       @Override
1892       public void actionPerformed(ActionEvent e)
1893       {
1894         viewAsCdna_actionPerformed();
1895       }
1896     });
1897     cdna.add(viewAsCdna);
1898
1899     extractScores.setText(MessageManager.getString("label.extract_scores")
1900             + "...");
1901     extractScores.addActionListener(new ActionListener()
1902     {
1903       @Override
1904       public void actionPerformed(ActionEvent e)
1905       {
1906         extractScores_actionPerformed(e);
1907       }
1908     });
1909     extractScores.setVisible(true);
1910     // JBPNote: TODO: make gui for regex based score extraction
1911
1912     // for show products actions see AlignFrame.canShowProducts
1913     showProducts.setText(MessageManager.getString("label.get_cross_refs"));
1914     openFeatureSettings.setText(MessageManager
1915             .getString("label.feature_settings"));
1916     openFeatureSettings.addActionListener(new ActionListener()
1917     {
1918       @Override
1919       public void actionPerformed(ActionEvent e)
1920       {
1921         featureSettings_actionPerformed(e);
1922       }
1923     });
1924     fetchSequence
1925             .setText(MessageManager.getString("label.fetch_sequences"));
1926     fetchSequence.addActionListener(new ActionListener()
1927     {
1928       @Override
1929       public void actionPerformed(ActionEvent e)
1930       {
1931         fetchSequence_actionPerformed(e);
1932       }
1933     });
1934
1935     annotationColour.setText(MessageManager
1936             .getString("action.by_annotation"));
1937     annotationColour.addActionListener(new ActionListener()
1938     {
1939       @Override
1940       public void actionPerformed(ActionEvent e)
1941       {
1942         annotationColour_actionPerformed(e);
1943       }
1944     });
1945
1946     rnahelicesColour.setText(MessageManager
1947             .getString("action.by_rna_helixes"));
1948     rnahelicesColour.addActionListener(new ActionListener()
1949     {
1950       @Override
1951       public void actionPerformed(ActionEvent e)
1952       {
1953         rnahelicesColour_actionPerformed(e);
1954       }
1955     });
1956
1957     associatedData.setText(MessageManager
1958             .getString("label.load_features_annotations"));
1959     associatedData.addActionListener(new ActionListener()
1960     {
1961       @Override
1962       public void actionPerformed(ActionEvent e)
1963       {
1964         associatedData_actionPerformed(e);
1965       }
1966     });
1967     autoCalculate.setText(MessageManager
1968             .getString("label.autocalculate_consensus"));
1969     autoCalculate.setState(jalview.bin.Cache.getDefault(
1970             "AUTO_CALC_CONSENSUS", true));
1971     autoCalculate.addActionListener(new ActionListener()
1972     {
1973       @Override
1974       public void actionPerformed(ActionEvent e)
1975       {
1976         autoCalculate_actionPerformed(e);
1977       }
1978     });
1979     sortByTree.setText(MessageManager
1980             .getString("label.sort_alignment_new_tree"));
1981     sortByTree
1982             .setToolTipText("<html>"
1983                     + MessageManager
1984                             .getString("label.enable_automatically_sort_alignment_when_open_new_tree"));
1985     sortByTree
1986             .setState(jalview.bin.Cache.getDefault("SORT_BY_TREE", false));
1987     sortByTree.addActionListener(new ActionListener()
1988     {
1989       @Override
1990       public void actionPerformed(ActionEvent e)
1991       {
1992         sortByTreeOption_actionPerformed(e);
1993       }
1994     });
1995
1996     listenToViewSelections.setText(MessageManager
1997             .getString("label.listen_for_selections"));
1998     listenToViewSelections
1999             .setToolTipText("<html>"
2000                     + MessageManager
2001                             .getString("label.selections_mirror_selections_made_same_sequences_other_views"));
2002     listenToViewSelections.setState(false);
2003     listenToViewSelections.addActionListener(new ActionListener()
2004     {
2005       @Override
2006       public void actionPerformed(ActionEvent e)
2007       {
2008         listenToViewSelections_actionPerformed(e);
2009       }
2010     });
2011
2012     addSequenceMenu
2013             .setText(MessageManager.getString("label.add_sequences"));
2014     addFromFile.setText(MessageManager.getString("label.from_file"));
2015     addFromFile.addActionListener(new ActionListener()
2016     {
2017       @Override
2018       public void actionPerformed(ActionEvent e)
2019       {
2020         addFromFile_actionPerformed(e);
2021       }
2022     });
2023     addFromText.setText(MessageManager.getString("label.from_textbox"));
2024     addFromText.addActionListener(new ActionListener()
2025     {
2026       @Override
2027       public void actionPerformed(ActionEvent e)
2028       {
2029         addFromText_actionPerformed(e);
2030       }
2031     });
2032     addFromURL.setText(MessageManager.getString("label.from_url"));
2033     addFromURL.addActionListener(new ActionListener()
2034     {
2035       @Override
2036       public void actionPerformed(ActionEvent e)
2037       {
2038         addFromURL_actionPerformed(e);
2039       }
2040     });
2041     exportFeatures.setText(MessageManager
2042             .getString("label.export_features"));
2043     exportFeatures.addActionListener(new ActionListener()
2044     {
2045       @Override
2046       public void actionPerformed(ActionEvent e)
2047       {
2048         exportFeatures_actionPerformed(e);
2049       }
2050     });
2051     exportAnnotations.setText(MessageManager
2052             .getString("label.export_annotations"));
2053     exportAnnotations.addActionListener(new ActionListener()
2054     {
2055       @Override
2056       public void actionPerformed(ActionEvent e)
2057       {
2058         exportAnnotations_actionPerformed(e);
2059       }
2060     });
2061     statusPanel.setLayout(gridLayout1);
2062     jMenu3.setText(MessageManager.getString("action.show"));
2063     showAllSeqs.setText(MessageManager.getString("label.all_sequences"));
2064     showAllSeqs.setToolTipText(MessageManager
2065             .getString("label.toggle_sequence_visibility"));
2066     showAllSeqs.addActionListener(new ActionListener()
2067     {
2068       @Override
2069       public void actionPerformed(ActionEvent e)
2070       {
2071         showAllSeqs_actionPerformed(e);
2072       }
2073     });
2074     showAllColumns.setText(MessageManager.getString("label.all_columns"));
2075     showAllColumns.setToolTipText(MessageManager
2076             .getString("label.toggle_columns_visibility"));
2077     showAllColumns.addActionListener(new ActionListener()
2078     {
2079       @Override
2080       public void actionPerformed(ActionEvent e)
2081       {
2082         showAllColumns_actionPerformed(e);
2083       }
2084     });
2085     hideMenu.setText(MessageManager.getString("action.hide"));
2086     hideSelSequences.setText(MessageManager
2087             .getString("label.selected_sequences"));
2088     hideSelSequences.setToolTipText(MessageManager
2089             .getString("label.toggle_sequence_visibility"));
2090     hideSelSequences.addActionListener(new ActionListener()
2091     {
2092       @Override
2093       public void actionPerformed(ActionEvent e)
2094       {
2095         hideSelSequences_actionPerformed(e);
2096       }
2097     });
2098     hideSelColumns.setText(MessageManager
2099             .getString("label.selected_columns"));
2100     hideSelColumns.setToolTipText(MessageManager
2101             .getString("label.toggle_columns_visibility"));
2102     hideSelColumns.addActionListener(new ActionListener()
2103     {
2104       @Override
2105       public void actionPerformed(ActionEvent e)
2106       {
2107         hideSelColumns_actionPerformed(e);
2108       }
2109     });
2110     hideAllSelection.setText(MessageManager
2111             .getString("label.selected_region"));
2112     hideAllSelection.addActionListener(new ActionListener()
2113     {
2114       @Override
2115       public void actionPerformed(ActionEvent e)
2116       {
2117         hideAllSelection_actionPerformed(e);
2118       }
2119     });
2120     // TODO: should be hidden if no selection exists.
2121     hideAllButSelection.setText(MessageManager
2122             .getString("label.all_but_selected_region"));
2123     hideAllButSelection.addActionListener(new ActionListener()
2124     {
2125       @Override
2126       public void actionPerformed(ActionEvent e)
2127       {
2128         hideAllButSelection_actionPerformed(e);
2129       }
2130     });
2131     showAllhidden.setText(MessageManager
2132             .getString("label.all_sequences_columns"));
2133     showAllhidden.setToolTipText(MessageManager
2134             .getString("label.toggles_visibility_hidden_selected_regions"));
2135     showAllhidden.addActionListener(new ActionListener()
2136     {
2137       @Override
2138       public void actionPerformed(ActionEvent e)
2139       {
2140         showAllhidden_actionPerformed(e);
2141       }
2142     });
2143     hiddenMarkers.setText(MessageManager
2144             .getString("action.show_hidden_markers"));
2145     hiddenMarkers.addActionListener(new ActionListener()
2146     {
2147       @Override
2148       public void actionPerformed(ActionEvent e)
2149       {
2150         hiddenMarkers_actionPerformed(e);
2151       }
2152     });
2153     invertColSel.setText(MessageManager
2154             .getString("action.invert_column_selection"));
2155     invertColSel.setAccelerator(javax.swing.KeyStroke.getKeyStroke(
2156             java.awt.event.KeyEvent.VK_I, Toolkit.getDefaultToolkit()
2157                     .getMenuShortcutKeyMask()
2158                     | java.awt.event.KeyEvent.ALT_MASK, false));
2159     invertColSel.addActionListener(new ActionListener()
2160     {
2161       @Override
2162       public void actionPerformed(ActionEvent e)
2163       {
2164         invertColSel_actionPerformed(e);
2165       }
2166     });
2167     tabbedPane.addChangeListener(new javax.swing.event.ChangeListener()
2168     {
2169       @Override
2170       public void stateChanged(ChangeEvent evt)
2171       {
2172         JTabbedPane pane = (JTabbedPane) evt.getSource();
2173         int sel = pane.getSelectedIndex();
2174         tabSelectionChanged(sel);
2175       }
2176     });
2177     tabbedPane.addMouseListener(new MouseAdapter()
2178     {
2179       @Override
2180       public void mousePressed(MouseEvent e)
2181       {
2182         tabbedPane_mousePressed(e);
2183       }
2184     });
2185     tabbedPane.addFocusListener(new FocusAdapter()
2186     {
2187       @Override
2188       public void focusGained(FocusEvent e)
2189       {
2190         tabbedPane_focusGained(e);
2191       }
2192     });
2193     save.setText(MessageManager.getString("action.save"));
2194     save.setAccelerator(javax.swing.KeyStroke.getKeyStroke(
2195             java.awt.event.KeyEvent.VK_S, Toolkit.getDefaultToolkit()
2196                     .getMenuShortcutKeyMask(), false));
2197     save.addActionListener(new ActionListener()
2198     {
2199       @Override
2200       public void actionPerformed(ActionEvent e)
2201       {
2202         save_actionPerformed(e);
2203       }
2204     });
2205     reload.setEnabled(false);
2206     reload.setText(MessageManager.getString("action.reload"));
2207     reload.addActionListener(new ActionListener()
2208     {
2209       @Override
2210       public void actionPerformed(ActionEvent e)
2211       {
2212         reload_actionPerformed(e);
2213       }
2214     });
2215     newView.setText(MessageManager.getString("action.new_view"));
2216     newView.setAccelerator(javax.swing.KeyStroke.getKeyStroke(
2217             java.awt.event.KeyEvent.VK_T, Toolkit.getDefaultToolkit()
2218                     .getMenuShortcutKeyMask(), false));
2219     newView.addActionListener(new ActionListener()
2220     {
2221       @Override
2222       public void actionPerformed(ActionEvent e)
2223       {
2224         newView_actionPerformed(e);
2225       }
2226     });
2227     tabbedPane.setToolTipText("<html><i>"
2228             + MessageManager.getString("label.rename_tab_eXpand_reGroup")
2229             + "</i></html>");
2230     textColour.setText(MessageManager.getString("label.colour_text")
2231             + "...");
2232     textColour.addActionListener(new ActionListener()
2233     {
2234       @Override
2235       public void actionPerformed(ActionEvent e)
2236       {
2237         textColour_actionPerformed(e);
2238       }
2239     });
2240     formatMenu.setText(MessageManager.getString("action.format"));
2241     selectMenu.setText(MessageManager.getString("action.select"));
2242     idRightAlign.setText(MessageManager
2243             .getString("label.right_align_sequence_id"));
2244     idRightAlign.addActionListener(new ActionListener()
2245     {
2246       @Override
2247       public void actionPerformed(ActionEvent e)
2248       {
2249         idRightAlign_actionPerformed(e);
2250       }
2251     });
2252     gatherViews.setEnabled(false);
2253     gatherViews.setText(MessageManager.getString("action.gather_views"));
2254     gatherViews.setAccelerator(javax.swing.KeyStroke.getKeyStroke(
2255             java.awt.event.KeyEvent.VK_G, 0, false));
2256     gatherViews.addActionListener(new ActionListener()
2257     {
2258       @Override
2259       public void actionPerformed(ActionEvent e)
2260       {
2261         gatherViews_actionPerformed(e);
2262       }
2263     });
2264     expandViews.setEnabled(false);
2265     expandViews.setText(MessageManager.getString("action.expand_views"));
2266     expandViews.setAccelerator(javax.swing.KeyStroke.getKeyStroke(
2267             java.awt.event.KeyEvent.VK_X, 0, false));
2268     expandViews.addActionListener(new ActionListener()
2269     {
2270       @Override
2271       public void actionPerformed(ActionEvent e)
2272       {
2273         expandViews_actionPerformed(e);
2274       }
2275     });
2276     pageSetup
2277             .setText(MessageManager.getString("action.page_setup") + "...");
2278     pageSetup.addActionListener(new ActionListener()
2279     {
2280       @Override
2281       public void actionPerformed(ActionEvent e)
2282       {
2283         pageSetup_actionPerformed(e);
2284       }
2285     });
2286     alignmentProperties.setText(MessageManager
2287             .getString("label.alignment_props") + "...");
2288     alignmentProperties.addActionListener(new ActionListener()
2289     {
2290       @Override
2291       public void actionPerformed(ActionEvent actionEvent)
2292       {
2293         alignmentProperties();
2294       }
2295     });
2296     tooltipSettingsMenu.setText(MessageManager
2297             .getString("label.sequence_id_tooltip"));
2298     autoAnnMenu.setText(MessageManager
2299             .getString("label.autocalculated_annotation"));
2300     alignFrameMenuBar.add(fileMenu);
2301     alignFrameMenuBar.add(editMenu);
2302     alignFrameMenuBar.add(selectMenu);
2303     alignFrameMenuBar.add(viewMenu);
2304     alignFrameMenuBar.add(annotationsMenu);
2305     alignFrameMenuBar.add(formatMenu);
2306     alignFrameMenuBar.add(colourMenu);
2307     alignFrameMenuBar.add(calculateMenu);
2308     alignFrameMenuBar.add(webService);
2309     fileMenu.add(fetchSequence);
2310     fileMenu.add(addSequenceMenu);
2311     fileMenu.add(reload);
2312     fileMenu.addSeparator();
2313     fileMenu.add(vamsasStore);
2314     fileMenu.add(save);
2315     fileMenu.add(saveAs);
2316     fileMenu.add(outputTextboxMenu);
2317     fileMenu.add(pageSetup);
2318     fileMenu.add(printMenuItem);
2319     fileMenu.addSeparator();
2320     fileMenu.add(jMenu2);
2321     fileMenu.add(exportFeatures);
2322     fileMenu.add(exportAnnotations);
2323     fileMenu.add(LoadtreeMenuItem);
2324     fileMenu.add(associatedData);
2325     fileMenu.addSeparator();
2326     fileMenu.add(closeMenuItem);
2327     editMenu.add(undoMenuItem);
2328     editMenu.add(redoMenuItem);
2329     editMenu.add(cut);
2330     editMenu.add(copy);
2331     editMenu.add(pasteMenu);
2332     editMenu.add(delete);
2333     editMenu.addSeparator();
2334     editMenu.add(remove2LeftMenuItem);
2335     editMenu.add(remove2RightMenuItem);
2336     editMenu.add(removeGappedColumnMenuItem);
2337     editMenu.add(removeAllGapsMenuItem);
2338     editMenu.add(removeRedundancyMenuItem);
2339     editMenu.addSeparator();
2340     // dont add these yet in the CVS build - they cannot be undone!
2341     // Excluded from Jalview 2.5 release - undo needs to be implemented.
2342     // editMenu.add(justifyLeftMenuItem);
2343     // editMenu.add(justifyRightMenuItem);
2344     // editMenu.addSeparator();
2345     editMenu.add(padGapsMenuitem);
2346     viewMenu.add(newView);
2347     viewMenu.add(expandViews);
2348     viewMenu.add(gatherViews);
2349     viewMenu.addSeparator();
2350     viewMenu.add(jMenu3);
2351     viewMenu.add(hideMenu);
2352     viewMenu.addSeparator();
2353     viewMenu.add(followHighlightMenuItem);
2354     annotationsMenu.add(annotationPanelMenuItem);
2355     annotationsMenu.addSeparator();
2356     annotationsMenu.add(showAllAlAnnotations);
2357     annotationsMenu.add(hideAllAlAnnotations);
2358     annotationsMenu.addSeparator();
2359     annotationsMenu.add(showAllSeqAnnotations);
2360     annotationsMenu.add(hideAllSeqAnnotations);
2361     annotationsMenu.add(sortAnnBySequence);
2362     annotationsMenu.add(sortAnnByLabel);
2363     annotationsMenu.addSeparator();
2364     autoAnnMenu.add(showAutoFirst);
2365     autoAnnMenu.add(showAutoLast);
2366     autoAnnMenu.addSeparator();
2367     autoAnnMenu.add(applyAutoAnnotationSettings);
2368     autoAnnMenu.add(showConsensusHistogram);
2369     autoAnnMenu.add(showSequenceLogo);
2370     autoAnnMenu.add(normaliseSequenceLogo);
2371     autoAnnMenu.addSeparator();
2372     autoAnnMenu.add(showGroupConservation);
2373     autoAnnMenu.add(showGroupConsensus);
2374     annotationsMenu.add(autoAnnMenu);
2375     viewMenu.addSeparator();
2376     viewMenu.add(showSeqFeatures);
2377     // viewMenu.add(showSeqFeaturesHeight);
2378
2379     viewMenu.add(openFeatureSettings);
2380     tooltipSettingsMenu.add(showDbRefsMenuitem);
2381     tooltipSettingsMenu.add(showNpFeatsMenuitem);
2382     viewMenu.add(tooltipSettingsMenu);
2383     viewMenu.addSeparator();
2384     viewMenu.add(alignmentProperties);
2385     viewMenu.addSeparator();
2386     viewMenu.add(overviewMenuItem);
2387     colourMenu.add(applyToAllGroups);
2388     colourMenu.add(textColour);
2389     colourMenu.addSeparator();
2390     colourMenu.add(noColourmenuItem);
2391     colourMenu.add(clustalColour);
2392     colourMenu.add(BLOSUM62Colour);
2393     colourMenu.add(PIDColour);
2394     colourMenu.add(zappoColour);
2395     colourMenu.add(taylorColour);
2396     colourMenu.add(hydrophobicityColour);
2397     colourMenu.add(helixColour);
2398     colourMenu.add(strandColour);
2399     colourMenu.add(turnColour);
2400     colourMenu.add(buriedColour);
2401     colourMenu.add(nucleotideColour);
2402     colourMenu.add(purinePyrimidineColour);
2403     colourMenu.add(RNAInteractionColour);
2404     // colourMenu.add(covariationColour);
2405     colourMenu.add(tcoffeeColour);
2406     colourMenu.add(userDefinedColour);
2407     colourMenu.addSeparator();
2408     colourMenu.add(conservationMenuItem);
2409     colourMenu.add(modifyConservation);
2410     colourMenu.add(abovePIDThreshold);
2411     colourMenu.add(modifyPID);
2412     colourMenu.add(annotationColour);
2413     colourMenu.add(rnahelicesColour);
2414     calculateMenu.add(sort);
2415     calculateMenu.add(calculateTree);
2416     calculateMenu.addSeparator();
2417     calculateMenu.add(pairwiseAlignmentMenuItem);
2418     calculateMenu.add(PCAMenuItem);
2419     calculateMenu.addSeparator();
2420     calculateMenu.add(showTranslation);
2421     calculateMenu.add(cdna);
2422     calculateMenu.add(showProducts);
2423     calculateMenu.add(autoCalculate);
2424     calculateMenu.add(sortByTree);
2425     calculateMenu.addSeparator();
2426     calculateMenu.add(extractScores);
2427     webServiceNoServices = new JMenuItem(
2428             MessageManager.getString("label.no_services"));
2429     webService.add(webServiceNoServices);
2430     pasteMenu.add(pasteNew);
2431     pasteMenu.add(pasteThis);
2432     sort.add(sortIDMenuItem);
2433     sort.add(sortLengthMenuItem);
2434     sort.add(sortGroupMenuItem);
2435     sort.add(sortPairwiseMenuItem);
2436     sort.add(sortByTreeMenu);
2437     jMenu2.add(htmlMenuItem);
2438     jMenu2.add(epsFile);
2439     jMenu2.add(createPNG);
2440     jMenu2.add(createSVG);
2441     addSequenceMenu.add(addFromFile);
2442     addSequenceMenu.add(addFromText);
2443     addSequenceMenu.add(addFromURL);
2444     this.getContentPane().add(statusPanel, java.awt.BorderLayout.SOUTH);
2445     statusPanel.add(statusBar, null);
2446     this.getContentPane().add(tabbedPane, java.awt.BorderLayout.CENTER);
2447     jMenu3.add(showAllColumns);
2448     jMenu3.add(showAllSeqs);
2449     jMenu3.add(showAllhidden);
2450     hideMenu.add(hideSelColumns);
2451     hideMenu.add(hideSelSequences);
2452     hideMenu.add(hideAllSelection);
2453     hideMenu.add(hideAllButSelection);
2454
2455     formatMenu.add(font);
2456     formatMenu.addSeparator();
2457     formatMenu.add(wrapMenuItem);
2458     formatMenu.add(scaleAbove);
2459     formatMenu.add(scaleLeft);
2460     formatMenu.add(scaleRight);
2461     formatMenu.add(seqLimits);
2462     formatMenu.add(idRightAlign);
2463     formatMenu.add(hiddenMarkers);
2464     formatMenu.add(viewBoxesMenuItem);
2465     formatMenu.add(viewTextMenuItem);
2466     formatMenu.add(colourTextMenuItem);
2467     formatMenu.add(renderGapsMenuItem);
2468     formatMenu.add(centreColumnLabelsMenuItem);
2469     formatMenu.add(showNonconservedMenuItem);
2470     selectMenu.add(findMenuItem);
2471     selectMenu.addSeparator();
2472     selectMenu.add(selectAllSequenceMenuItem);
2473     selectMenu.add(deselectAllSequenceMenuItem);
2474     selectMenu.add(invertSequenceMenuItem);
2475     selectMenu.add(invertColSel);
2476     selectMenu.add(createGroup);
2477     selectMenu.add(unGroup);
2478     selectMenu.add(grpsFromSelection);
2479     selectMenu.add(deleteGroups);
2480     calculateMenu.add(expandAlignment);
2481     // TODO - determine if the listenToViewSelections button is needed : see bug
2482     // JAL-574
2483     // selectMenu.addSeparator();
2484     // selectMenu.add(listenToViewSelections);
2485   }
2486
2487   protected void viewAsCdna_actionPerformed()
2488   {
2489   }
2490
2491   protected void alignCdna_actionPerformed()
2492   {
2493   }
2494
2495   protected void linkCdna_actionPerformed()
2496   {
2497   }
2498
2499   /**
2500    * Action on clicking sort annotations by type.
2501    * 
2502    * @param sortOrder
2503    */
2504   protected void sortAnnotations_actionPerformed()
2505   {
2506   }
2507
2508   /**
2509    * Action on clicking Show all annotations.
2510    * 
2511    * @param forSequences
2512    *          update sequence-related annotations
2513    * @param forAlignment
2514    *          update non-sequence-related annotations
2515    */
2516   protected void showAllAnnotations_actionPerformed(boolean forSequences,
2517           boolean forAlignment)
2518   {
2519     setAnnotationsVisibility(true, forSequences, forAlignment);
2520   }
2521
2522   /**
2523    * Action on clicking Hide all annotations.
2524    * 
2525    * @param forSequences
2526    *          update sequence-related annotations
2527    * @param forAlignment
2528    *          update non-sequence-related annotations
2529    */
2530   protected void hideAllAnnotations_actionPerformed(boolean forSequences,
2531           boolean forAlignment)
2532   {
2533     setAnnotationsVisibility(false, forSequences, forAlignment);
2534   }
2535
2536   /**
2537    * Set the visibility of annotations to true or false. Can act on
2538    * sequence-related annotations, or alignment-related, or both.
2539    * 
2540    * @param visible
2541    * @param forSequences
2542    *          update sequence-related annotations
2543    * @param forAlignment
2544    *          update non-sequence-related annotations
2545    */
2546   protected void setAnnotationsVisibility(boolean visible,
2547           boolean forSequences, boolean forAlignment)
2548   {
2549
2550   }
2551
2552   protected void normaliseSequenceLogo_actionPerformed(ActionEvent e)
2553   {
2554     // TODO Auto-generated method stub
2555
2556   }
2557
2558   protected void listenToViewSelections_actionPerformed(ActionEvent e)
2559   {
2560     // TODO Auto-generated method stub
2561
2562   }
2563
2564   protected void showAllhidden_actionPerformed(ActionEvent e)
2565   {
2566     // TODO Auto-generated method stub
2567
2568   }
2569
2570   protected void hideAllButSelection_actionPerformed(ActionEvent e)
2571   {
2572     // TODO Auto-generated method stub
2573
2574   }
2575
2576   protected void hideAllSelection_actionPerformed(ActionEvent e)
2577   {
2578     // TODO Auto-generated method stub
2579
2580   }
2581
2582   protected void applyAutoAnnotationSettings_actionPerformed(ActionEvent e)
2583   {
2584     // TODO Auto-generated method stub
2585
2586   }
2587
2588   protected void showConsensusHistogram_actionPerformed(ActionEvent e)
2589   {
2590     // TODO Auto-generated method stub
2591
2592   }
2593
2594   protected void showSequenceLogo_actionPerformed(ActionEvent e)
2595   {
2596     // TODO Auto-generated method stub
2597
2598   }
2599
2600   protected void makeGrpsFromSelection_actionPerformed(ActionEvent e)
2601   {
2602     // TODO Auto-generated method stub
2603
2604   }
2605
2606   protected void showGroupConsensus_actionPerformed(ActionEvent e)
2607   {
2608     // TODO Auto-generated method stub
2609
2610   }
2611
2612   protected void showGroupConservation_actionPerformed(ActionEvent e)
2613   {
2614     // TODO Auto-generated method stub
2615
2616   }
2617
2618   protected void showUnconservedMenuItem_actionPerformed(ActionEvent e)
2619   {
2620     // TODO Auto-generated method stub
2621
2622   }
2623
2624   protected void showSeqFeaturesHeight_actionPerformed(
2625           ActionEvent actionEvent)
2626   {
2627     // TODO Auto-generated method stub
2628
2629   }
2630
2631   protected void justifyRightMenuItem_actionPerformed(ActionEvent e)
2632   {
2633     // TODO Auto-generated method stub
2634
2635   }
2636
2637   protected void justifyLeftMenuItem_actionPerformed(ActionEvent e)
2638   {
2639     // TODO Auto-generated method stub
2640
2641   }
2642
2643   protected void followHighlight_actionPerformed()
2644   {
2645     // TODO Auto-generated method stub
2646
2647   }
2648
2649   protected void showNpFeats_actionPerformed(ActionEvent e)
2650   {
2651     // TODO Auto-generated method stub
2652
2653   }
2654
2655   protected void showDbRefs_actionPerformed(ActionEvent e)
2656   {
2657     // TODO Auto-generated method stub
2658
2659   }
2660
2661   protected void centreColumnLabels_actionPerformed(ActionEvent e)
2662   {
2663   }
2664
2665   protected void buildSortByAnnotationScoresMenu()
2666   {
2667   }
2668
2669   protected void extractScores_actionPerformed(ActionEvent e)
2670   {
2671   }
2672
2673   protected void outputText_actionPerformed(ActionEvent e)
2674   {
2675   }
2676
2677   public void addFromFile_actionPerformed(ActionEvent e)
2678   {
2679
2680   }
2681
2682   public void addFromText_actionPerformed(ActionEvent e)
2683   {
2684
2685   }
2686
2687   public void addFromURL_actionPerformed(ActionEvent e)
2688   {
2689
2690   }
2691
2692   public void exportFeatures_actionPerformed(ActionEvent e)
2693   {
2694
2695   }
2696
2697   public void exportAnnotations_actionPerformed(ActionEvent e)
2698   {
2699
2700   }
2701
2702   protected void htmlMenuItem_actionPerformed(ActionEvent e)
2703   {
2704   }
2705
2706   protected void closeMenuItem_actionPerformed(boolean b)
2707   {
2708   }
2709
2710   protected void redoMenuItem_actionPerformed(ActionEvent e)
2711   {
2712   }
2713
2714   protected void undoMenuItem_actionPerformed(ActionEvent e)
2715   {
2716   }
2717
2718   protected void selectAllSequenceMenuItem_actionPerformed(ActionEvent e)
2719   {
2720   }
2721
2722   protected void deselectAllSequenceMenuItem_actionPerformed(ActionEvent e)
2723   {
2724   }
2725
2726   protected void invertSequenceMenuItem_actionPerformed(ActionEvent e)
2727   {
2728   }
2729
2730   protected void remove2LeftMenuItem_actionPerformed(ActionEvent e)
2731   {
2732   }
2733
2734   protected void remove2RightMenuItem_actionPerformed(ActionEvent e)
2735   {
2736   }
2737
2738   protected void removeGappedColumnMenuItem_actionPerformed(ActionEvent e)
2739   {
2740   }
2741
2742   protected void removeAllGapsMenuItem_actionPerformed(ActionEvent e)
2743   {
2744   }
2745
2746   protected void wrapMenuItem_actionPerformed(ActionEvent e)
2747   {
2748   }
2749
2750   protected void viewBoxesMenuItem_actionPerformed(ActionEvent e)
2751   {
2752   }
2753
2754   protected void viewTextMenuItem_actionPerformed(ActionEvent e)
2755   {
2756   }
2757
2758   protected void colourTextMenuItem_actionPerformed(ActionEvent e)
2759   {
2760   }
2761
2762   protected void annotationPanelMenuItem_actionPerformed(ActionEvent e)
2763   {
2764   }
2765
2766   protected void overviewMenuItem_actionPerformed(ActionEvent e)
2767   {
2768   }
2769
2770   protected void sortPairwiseMenuItem_actionPerformed(ActionEvent e)
2771   {
2772   }
2773
2774   protected void sortIDMenuItem_actionPerformed(ActionEvent e)
2775   {
2776   }
2777
2778   protected void sortLengthMenuItem_actionPerformed(ActionEvent e)
2779   {
2780   }
2781
2782   protected void sortGroupMenuItem_actionPerformed(ActionEvent e)
2783   {
2784   }
2785
2786   protected void removeRedundancyMenuItem_actionPerformed(ActionEvent e)
2787   {
2788   }
2789
2790   protected void pairwiseAlignmentMenuItem_actionPerformed(ActionEvent e)
2791   {
2792   }
2793
2794   protected void PCAMenuItem_actionPerformed(ActionEvent e)
2795   {
2796   }
2797
2798   protected void averageDistanceTreeMenuItem_actionPerformed(ActionEvent e)
2799   {
2800   }
2801
2802   protected void neighbourTreeMenuItem_actionPerformed(ActionEvent e)
2803   {
2804   }
2805
2806   protected void njTreeBlosumMenuItem_actionPerformed(ActionEvent e)
2807   {
2808   }
2809
2810   protected void avTreeBlosumMenuItem_actionPerformed(ActionEvent e)
2811   {
2812   }
2813
2814   protected void clustalColour_actionPerformed(ActionEvent e)
2815   {
2816   }
2817
2818   protected void zappoColour_actionPerformed(ActionEvent e)
2819   {
2820   }
2821
2822   protected void taylorColour_actionPerformed(ActionEvent e)
2823   {
2824   }
2825
2826   protected void hydrophobicityColour_actionPerformed(ActionEvent e)
2827   {
2828   }
2829
2830   protected void helixColour_actionPerformed(ActionEvent e)
2831   {
2832   }
2833
2834   protected void strandColour_actionPerformed(ActionEvent e)
2835   {
2836   }
2837
2838   protected void turnColour_actionPerformed(ActionEvent e)
2839   {
2840   }
2841
2842   protected void buriedColour_actionPerformed(ActionEvent e)
2843   {
2844   }
2845
2846   protected void userDefinedColour_actionPerformed(ActionEvent e)
2847   {
2848   }
2849
2850   protected void PIDColour_actionPerformed(ActionEvent e)
2851   {
2852   }
2853
2854   protected void BLOSUM62Colour_actionPerformed(ActionEvent e)
2855   {
2856   }
2857
2858   protected void purinePyrimidineColour_actionPerformed(ActionEvent e)
2859   {
2860   }
2861
2862   protected void RNAInteractionColour_actionPerformed(ActionEvent e)
2863   {
2864   }
2865
2866   /*
2867    * protected void covariationColour_actionPerformed(ActionEvent e) { }
2868    */
2869
2870   protected void noColourmenuItem_actionPerformed(ActionEvent e)
2871   {
2872   }
2873
2874   protected void conservationMenuItem_actionPerformed(ActionEvent e)
2875   {
2876   }
2877
2878   protected void printMenuItem_actionPerformed(ActionEvent e)
2879   {
2880   }
2881
2882   protected void renderGapsMenuItem_actionPerformed(ActionEvent e)
2883   {
2884   }
2885
2886   protected void findMenuItem_actionPerformed(ActionEvent e)
2887   {
2888   }
2889
2890   protected void abovePIDThreshold_actionPerformed(ActionEvent e)
2891   {
2892   }
2893
2894   public void showSeqFeatures_actionPerformed(ActionEvent actionEvent)
2895   {
2896   }
2897
2898   protected void nucleotideColour_actionPerformed(ActionEvent e)
2899   {
2900   }
2901
2902   protected void deleteGroups_actionPerformed(ActionEvent e)
2903   {
2904   }
2905
2906   protected void createGroup_actionPerformed(ActionEvent e)
2907   {
2908   }
2909
2910   protected void unGroup_actionPerformed(ActionEvent e)
2911   {
2912   }
2913
2914   protected void copy_actionPerformed(ActionEvent e)
2915   {
2916   }
2917
2918   protected void cut_actionPerformed(ActionEvent e)
2919   {
2920   }
2921
2922   protected void delete_actionPerformed(ActionEvent e)
2923   {
2924   }
2925
2926   protected void pasteNew_actionPerformed(ActionEvent e)
2927   {
2928   }
2929
2930   protected void pasteThis_actionPerformed(ActionEvent e)
2931   {
2932   }
2933
2934   protected void applyToAllGroups_actionPerformed(ActionEvent e)
2935   {
2936   }
2937
2938   public void createPNG(java.io.File f)
2939   {
2940   }
2941
2942   protected void font_actionPerformed(ActionEvent e)
2943   {
2944   }
2945
2946   protected void seqLimit_actionPerformed(ActionEvent e)
2947   {
2948   }
2949
2950   public void seqDBRef_actionPerformed(ActionEvent e)
2951   {
2952
2953   }
2954
2955   public void createEPS(java.io.File f)
2956   {
2957   }
2958
2959   public void createSVG(java.io.File f)
2960   {
2961
2962   }
2963   protected void LoadtreeMenuItem_actionPerformed(ActionEvent e)
2964   {
2965
2966   }
2967
2968   /**
2969    * Template method to handle the 'load T-Coffee scores' menu event.
2970    * <p>
2971    * Subclasses override this method to provide a custom action.
2972    * 
2973    * @param event
2974    *          The raised event
2975    */
2976   protected void loadScores_actionPerformed(ActionEvent event)
2977   {
2978
2979   }
2980
2981   /**
2982    * Template method to handle the 'Color T-Coffee scores' menu event.
2983    * <p>
2984    * Subclasses override this method to provide a custom action.
2985    * 
2986    * @param event
2987    *          The raised event
2988    */
2989   protected void tcoffeeColorScheme_actionPerformed(ActionEvent event)
2990   {
2991
2992   }
2993
2994   protected void jpred_actionPerformed(ActionEvent e)
2995   {
2996   }
2997
2998   protected void scaleAbove_actionPerformed(ActionEvent e)
2999   {
3000   }
3001
3002   protected void scaleLeft_actionPerformed(ActionEvent e)
3003   {
3004   }
3005
3006   protected void scaleRight_actionPerformed(ActionEvent e)
3007   {
3008   }
3009
3010   protected void modifyPID_actionPerformed(ActionEvent e)
3011   {
3012   }
3013
3014   protected void modifyConservation_actionPerformed(ActionEvent e)
3015   {
3016   }
3017
3018   protected void saveAs_actionPerformed(ActionEvent e)
3019   {
3020   }
3021
3022   protected void padGapsMenuitem_actionPerformed(ActionEvent e)
3023   {
3024   }
3025
3026   public void vamsasStore_actionPerformed(ActionEvent e)
3027   {
3028
3029   }
3030
3031   public void vamsasLoad_actionPerformed(ActionEvent e)
3032   {
3033
3034   }
3035
3036   public void showTranslation_actionPerformed(ActionEvent e)
3037   {
3038
3039   }
3040
3041   public void featureSettings_actionPerformed(ActionEvent e)
3042   {
3043
3044   }
3045
3046   public void fetchSequence_actionPerformed(ActionEvent e)
3047   {
3048
3049   }
3050
3051   public void smoothFont_actionPerformed(ActionEvent e)
3052   {
3053
3054   }
3055
3056   public void annotationColour_actionPerformed(ActionEvent e)
3057   {
3058
3059   }
3060
3061   public void rnahelicesColour_actionPerformed(ActionEvent e)
3062   {
3063
3064   }
3065
3066   public void associatedData_actionPerformed(ActionEvent e)
3067   {
3068
3069   }
3070
3071   public void autoCalculate_actionPerformed(ActionEvent e)
3072   {
3073
3074   }
3075
3076   public void sortByTreeOption_actionPerformed(ActionEvent e)
3077   {
3078
3079   }
3080
3081   public void showAllSeqs_actionPerformed(ActionEvent e)
3082   {
3083
3084   }
3085
3086   public void showAllColumns_actionPerformed(ActionEvent e)
3087   {
3088
3089   }
3090
3091   public void hideSelSequences_actionPerformed(ActionEvent e)
3092   {
3093
3094   }
3095
3096   public void hideSelColumns_actionPerformed(ActionEvent e)
3097   {
3098
3099   }
3100
3101   public void hiddenMarkers_actionPerformed(ActionEvent e)
3102   {
3103
3104   }
3105
3106   public void findPdbId_actionPerformed(ActionEvent e)
3107   {
3108
3109   }
3110
3111   public void enterPdbId_actionPerformed(ActionEvent e)
3112   {
3113
3114   }
3115
3116   public void pdbFile_actionPerformed(ActionEvent e)
3117   {
3118
3119   }
3120
3121   public void invertColSel_actionPerformed(ActionEvent e)
3122   {
3123
3124   }
3125
3126   public void tabSelectionChanged(int sel)
3127   {
3128
3129   }
3130
3131   public void tabbedPane_mousePressed(MouseEvent e)
3132   {
3133
3134   }
3135
3136   public void tabbedPane_focusGained(FocusEvent e)
3137   {
3138     requestFocus();
3139   }
3140
3141   public void save_actionPerformed(ActionEvent e)
3142   {
3143
3144   }
3145
3146   public void reload_actionPerformed(ActionEvent e)
3147   {
3148
3149   }
3150
3151   public void newView_actionPerformed(ActionEvent e)
3152   {
3153
3154   }
3155
3156   public void textColour_actionPerformed(ActionEvent e)
3157   {
3158
3159   }
3160
3161   public void idRightAlign_actionPerformed(ActionEvent e)
3162   {
3163
3164   }
3165
3166   public void expandViews_actionPerformed(ActionEvent e)
3167   {
3168
3169   }
3170
3171   public void gatherViews_actionPerformed(ActionEvent e)
3172   {
3173
3174   }
3175
3176   public void buildTreeMenu()
3177   {
3178
3179   }
3180
3181   public void pageSetup_actionPerformed(ActionEvent e)
3182   {
3183
3184   }
3185
3186   public void alignmentProperties()
3187   {
3188
3189   }
3190
3191   protected void expand_newalign(ActionEvent e)
3192   {
3193     // TODO Auto-generated method stub
3194
3195   }
3196
3197   protected boolean isShowAutoCalculatedAbove()
3198   {
3199     return showAutoCalculatedAbove;
3200   }
3201
3202   protected void setShowAutoCalculatedAbove(boolean showAutoCalculatedAbove)
3203   {
3204     this.showAutoCalculatedAbove = showAutoCalculatedAbove;
3205   }
3206
3207   protected SequenceAnnotationOrder getAnnotationSortOrder()
3208   {
3209     return annotationSortOrder;
3210   }
3211
3212   protected void setAnnotationSortOrder(SequenceAnnotationOrder annotationSortOrder)
3213   {
3214     this.annotationSortOrder = annotationSortOrder;
3215   }
3216
3217   public Map<KeyStroke, JMenuItem> getAccelerators()
3218   {
3219     return this.accelerators;
3220   }
3221 }