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