merge from 2_4_Release branch
[jalview.git] / src / jalview / jbgui / GAlignFrame.java
1 /*
2  * Jalview - A Sequence Alignment Editor and Viewer (Version 2.4)
3  * Copyright (C) 2008 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle
4  * 
5  * This program is free software; you can redistribute it and/or
6  * modify it under the terms of the GNU General Public License
7  * as published by the Free Software Foundation; either version 2
8  * of the License, or (at your option) any later version.
9  * 
10  * This program is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13  * GNU General Public License for more details.
14  * 
15  * You should have received a copy of the GNU General Public License
16  * along with this program; if not, write to the Free Software
17  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA
18  */
19 package jalview.jbgui;
20
21 import java.awt.*;
22 import java.awt.event.*;
23
24 import javax.swing.*;
25 import javax.swing.event.*;
26
27 import jalview.schemes.*;
28
29 public class GAlignFrame extends JInternalFrame
30 {
31   protected JMenuBar alignFrameMenuBar = new JMenuBar();
32
33   protected JMenu fileMenu = new JMenu();
34
35   protected JMenuItem closeMenuItem = new JMenuItem();
36
37   protected JMenu editMenu = new JMenu();
38
39   protected JMenu viewMenu = new JMenu();
40
41   protected JMenu colourMenu = new JMenu();
42
43   protected JMenu calculateMenu = new JMenu();
44
45   protected JMenu webService = new JMenu();
46
47   protected JMenuItem webServiceNoServices;
48
49   protected JMenuItem selectAllSequenceMenuItem = new JMenuItem();
50
51   protected JMenuItem deselectAllSequenceMenuItem = new JMenuItem();
52
53   protected JMenuItem invertSequenceMenuItem = new JMenuItem();
54
55   protected JMenuItem remove2LeftMenuItem = new JMenuItem();
56
57   protected JMenuItem remove2RightMenuItem = new JMenuItem();
58
59   protected JMenuItem removeGappedColumnMenuItem = new JMenuItem();
60
61   protected JMenuItem removeAllGapsMenuItem = new JMenuItem();
62
63   public JCheckBoxMenuItem viewBoxesMenuItem = new JCheckBoxMenuItem();
64
65   public JCheckBoxMenuItem viewTextMenuItem = new JCheckBoxMenuItem();
66
67   protected JMenuItem sortPairwiseMenuItem = new JMenuItem();
68
69   protected JMenuItem sortIDMenuItem = new JMenuItem();
70
71   protected JMenuItem sortGroupMenuItem = new JMenuItem();
72
73   protected JMenu sortByAnnotScore = new JMenu();
74
75   protected JMenuItem removeRedundancyMenuItem = new JMenuItem();
76
77   protected JMenuItem pairwiseAlignmentMenuItem = new JMenuItem();
78
79   protected JMenuItem PCAMenuItem = new JMenuItem();
80
81   protected JMenuItem averageDistanceTreeMenuItem = new JMenuItem();
82
83   protected JMenuItem neighbourTreeMenuItem = new JMenuItem();
84
85   BorderLayout borderLayout1 = new BorderLayout();
86
87   public JLabel statusBar = new JLabel();
88
89   protected JMenuItem saveAs = new JMenuItem();
90
91   protected JMenu outputTextboxMenu = new JMenu();
92
93   protected JRadioButtonMenuItem clustalColour = new JRadioButtonMenuItem();
94
95   protected JRadioButtonMenuItem zappoColour = new JRadioButtonMenuItem();
96
97   protected JRadioButtonMenuItem taylorColour = new JRadioButtonMenuItem();
98
99   protected JRadioButtonMenuItem hydrophobicityColour = new JRadioButtonMenuItem();
100
101   protected JRadioButtonMenuItem helixColour = new JRadioButtonMenuItem();
102
103   protected JRadioButtonMenuItem strandColour = new JRadioButtonMenuItem();
104
105   protected JRadioButtonMenuItem turnColour = new JRadioButtonMenuItem();
106
107   protected JRadioButtonMenuItem buriedColour = new JRadioButtonMenuItem();
108
109   protected JRadioButtonMenuItem userDefinedColour = new JRadioButtonMenuItem();
110
111   protected JRadioButtonMenuItem PIDColour = new JRadioButtonMenuItem();
112
113   protected JRadioButtonMenuItem BLOSUM62Colour = new JRadioButtonMenuItem();
114
115   JMenuItem njTreeBlosumMenuItem = new JMenuItem();
116
117   JMenuItem avDistanceTreeBlosumMenuItem = new JMenuItem();
118
119   public JCheckBoxMenuItem annotationPanelMenuItem = new JCheckBoxMenuItem();
120
121   public JCheckBoxMenuItem colourTextMenuItem = new JCheckBoxMenuItem();
122
123   JMenuItem htmlMenuItem = new JMenuItem();
124
125   JMenuItem overviewMenuItem = new JMenuItem();
126
127   protected JMenuItem undoMenuItem = new JMenuItem();
128
129   protected JMenuItem redoMenuItem = new JMenuItem();
130
131   public JCheckBoxMenuItem conservationMenuItem = new JCheckBoxMenuItem();
132
133   JRadioButtonMenuItem noColourmenuItem = new JRadioButtonMenuItem();
134
135   public JCheckBoxMenuItem wrapMenuItem = new JCheckBoxMenuItem();
136
137   JMenuItem printMenuItem = new JMenuItem();
138
139   public JCheckBoxMenuItem renderGapsMenuItem = new JCheckBoxMenuItem();
140
141   JMenuItem findMenuItem = new JMenuItem();
142
143   public JCheckBoxMenuItem abovePIDThreshold = new JCheckBoxMenuItem();
144
145   public JCheckBoxMenuItem showSeqFeatures = new JCheckBoxMenuItem();
146
147   protected JRadioButtonMenuItem nucleotideColour = new JRadioButtonMenuItem();
148
149   JMenuItem deleteGroups = new JMenuItem();
150
151   JMenuItem delete = new JMenuItem();
152
153   JMenuItem copy = new JMenuItem();
154
155   JMenuItem cut = new JMenuItem();
156
157   JMenu pasteMenu = new JMenu();
158
159   JMenuItem pasteNew = new JMenuItem();
160
161   JMenuItem pasteThis = new JMenuItem();
162
163   public JCheckBoxMenuItem applyToAllGroups = new JCheckBoxMenuItem();
164
165   JMenuItem createPNG = new JMenuItem();
166
167   protected JMenuItem font = new JMenuItem();
168
169   public JCheckBoxMenuItem seqLimits = new JCheckBoxMenuItem();
170
171   JMenuItem epsFile = new JMenuItem();
172
173   JMenuItem LoadtreeMenuItem = new JMenuItem();
174
175   public JCheckBoxMenuItem scaleAbove = new JCheckBoxMenuItem();
176
177   public JCheckBoxMenuItem scaleLeft = new JCheckBoxMenuItem();
178
179   public JCheckBoxMenuItem scaleRight = new JCheckBoxMenuItem();
180
181   protected JMenuItem modifyPID = new JMenuItem();
182
183   protected JMenuItem modifyConservation = new JMenuItem();
184
185   protected JMenu sortByTreeMenu = new JMenu();
186
187   protected JMenu sort = new JMenu();
188
189   JMenu calculate = new JMenu();
190
191   JMenu jMenu2 = new JMenu();
192
193   protected JCheckBoxMenuItem padGapsMenuitem = new JCheckBoxMenuItem();
194
195   protected ButtonGroup colours = new ButtonGroup();
196
197   JMenuItem vamsasStore = new JMenuItem();
198
199   protected JMenuItem showTranslation = new JMenuItem();
200
201   protected JMenuItem extractScores = new JMenuItem();
202
203   protected JMenu showProducts = new JMenu();
204
205   public JMenuItem featureSettings = new JMenuItem();
206
207   JMenuItem fetchSequence = new JMenuItem();
208
209   JMenuItem annotationColour = new JMenuItem();
210
211   JMenuItem associatedData = new JMenuItem();
212
213   protected JCheckBoxMenuItem autoCalculate = new JCheckBoxMenuItem();
214
215   JMenu addSequenceMenu = new JMenu();
216
217   JMenuItem addFromFile = new JMenuItem();
218
219   JMenuItem addFromText = new JMenuItem();
220
221   JMenuItem addFromURL = new JMenuItem();
222
223   JMenuItem exportAnnotations = new JMenuItem();
224
225   JMenuItem exportFeatures = new JMenuItem();
226
227   protected JPanel statusPanel = new JPanel();
228
229   GridLayout gridLayout1 = new GridLayout();
230
231   JMenu jMenu3 = new JMenu();
232
233   JMenuItem showAllSeqs = new JMenuItem();
234
235   JMenuItem showAllColumns = new JMenuItem();
236
237   JMenu hideMenu = new JMenu();
238
239   JMenuItem hideSelSequences = new JMenuItem();
240
241   JMenuItem hideSelColumns = new JMenuItem();
242
243   protected JCheckBoxMenuItem hiddenMarkers = new JCheckBoxMenuItem();
244
245   JMenuItem invertColSel = new JMenuItem();
246
247   protected JTabbedPane tabbedPane = new JTabbedPane();
248
249   JMenuItem save = new JMenuItem();
250
251   protected JMenuItem reload = new JMenuItem();
252
253   JMenuItem newView = new JMenuItem();
254
255   JMenuItem textColour = new JMenuItem();
256
257   JMenu formatMenu = new JMenu();
258
259   JMenu selectMenu = new JMenu();
260
261   protected JCheckBoxMenuItem idRightAlign = new JCheckBoxMenuItem();
262
263   protected JCheckBoxMenuItem centreColumnLabelsMenuItem = new JCheckBoxMenuItem();
264
265   protected JMenuItem gatherViews = new JMenuItem();
266
267   protected JMenuItem expandViews = new JMenuItem();
268
269   JMenuItem pageSetup = new JMenuItem();
270
271   JMenuItem alignmentProperties = new JMenuItem();
272
273   public GAlignFrame()
274   {
275     try
276     {
277       jbInit();
278       setJMenuBar(alignFrameMenuBar);
279
280       // dynamically fill save as menu with available formats
281       for (int i = 0; i < jalview.io.FormatAdapter.WRITEABLE_FORMATS.length; i++)
282       {
283         JMenuItem item = new JMenuItem(
284                 jalview.io.FormatAdapter.WRITEABLE_FORMATS[i]);
285
286         item.addActionListener(new java.awt.event.ActionListener()
287         {
288           public void actionPerformed(ActionEvent e)
289           {
290             outputText_actionPerformed(e);
291           }
292         });
293
294         outputTextboxMenu.add(item);
295       }
296     } catch (Exception e)
297     {
298     }
299
300     if (!new jalview.util.Platform().isAMac())
301     {
302       closeMenuItem.setMnemonic('C');
303       outputTextboxMenu.setMnemonic('T');
304       undoMenuItem.setMnemonic('Z');
305       redoMenuItem.setMnemonic('0');
306       copy.setMnemonic('C');
307       cut.setMnemonic('U');
308       pasteMenu.setMnemonic('P');
309       reload.setMnemonic('R');
310     }
311
312     if (jalview.gui.UserDefinedColours.getUserColourSchemes() != null)
313     {
314       java.util.Enumeration userColours = jalview.gui.UserDefinedColours
315               .getUserColourSchemes().keys();
316
317       while (userColours.hasMoreElements())
318       {
319         final JRadioButtonMenuItem radioItem = new JRadioButtonMenuItem(
320                 userColours.nextElement().toString());
321         radioItem.setName("USER_DEFINED");
322         radioItem.addMouseListener(new MouseAdapter()
323         {
324           public void mousePressed(MouseEvent evt)
325           {
326             if (evt.isControlDown()
327                     || SwingUtilities.isRightMouseButton(evt))
328             {
329               radioItem
330                       .removeActionListener(radioItem.getActionListeners()[0]);
331
332               int option = JOptionPane.showInternalConfirmDialog(
333                       jalview.gui.Desktop.desktop,
334                       "Remove from default list?",
335                       "Remove user defined colour",
336                       JOptionPane.YES_NO_OPTION);
337               if (option == JOptionPane.YES_OPTION)
338               {
339                 jalview.gui.UserDefinedColours
340                         .removeColourFromDefaults(radioItem.getText());
341                 colourMenu.remove(radioItem);
342               }
343               else
344               {
345                 radioItem.addActionListener(new ActionListener()
346                 {
347                   public void actionPerformed(ActionEvent evt)
348                   {
349                     userDefinedColour_actionPerformed(evt);
350                   }
351                 });
352               }
353             }
354           }
355         });
356         radioItem.addActionListener(new ActionListener()
357         {
358           public void actionPerformed(ActionEvent evt)
359           {
360             userDefinedColour_actionPerformed(evt);
361           }
362         });
363         colourMenu.insert(radioItem, 15);
364         colours.add(radioItem);
365       }
366     }
367     colours.add(noColourmenuItem);
368     colours.add(clustalColour);
369     colours.add(zappoColour);
370     colours.add(taylorColour);
371     colours.add(hydrophobicityColour);
372     colours.add(helixColour);
373     colours.add(strandColour);
374     colours.add(turnColour);
375     colours.add(buriedColour);
376     colours.add(userDefinedColour);
377     colours.add(PIDColour);
378     colours.add(BLOSUM62Colour);
379     colours.add(nucleotideColour);
380
381     setColourSelected(jalview.bin.Cache
382             .getDefault("DEFAULT_COLOUR", "None"));
383
384   }
385
386   public void setColourSelected(String defaultColour)
387   {
388
389     if (defaultColour != null)
390     {
391       int index = ColourSchemeProperty
392               .getColourIndexFromName(defaultColour);
393
394       switch (index)
395       {
396       case ColourSchemeProperty.NONE:
397         noColourmenuItem.setSelected(true);
398         break;
399       case ColourSchemeProperty.CLUSTAL:
400         clustalColour.setSelected(true);
401
402         break;
403
404       case ColourSchemeProperty.BLOSUM:
405         BLOSUM62Colour.setSelected(true);
406
407         break;
408
409       case ColourSchemeProperty.PID:
410         PIDColour.setSelected(true);
411
412         break;
413
414       case ColourSchemeProperty.ZAPPO:
415         zappoColour.setSelected(true);
416
417         break;
418
419       case ColourSchemeProperty.TAYLOR:
420         taylorColour.setSelected(true);
421         break;
422
423       case ColourSchemeProperty.HYDROPHOBIC:
424         hydrophobicityColour.setSelected(true);
425
426         break;
427
428       case ColourSchemeProperty.HELIX:
429         helixColour.setSelected(true);
430
431         break;
432
433       case ColourSchemeProperty.STRAND:
434         strandColour.setSelected(true);
435
436         break;
437
438       case ColourSchemeProperty.TURN:
439         turnColour.setSelected(true);
440
441         break;
442
443       case ColourSchemeProperty.BURIED:
444         buriedColour.setSelected(true);
445
446         break;
447
448       case ColourSchemeProperty.NUCLEOTIDE:
449         nucleotideColour.setSelected(true);
450
451         break;
452
453       case ColourSchemeProperty.USER_DEFINED:
454         userDefinedColour.setSelected(true);
455
456         break;
457       }
458     }
459
460   }
461
462   private void jbInit() throws Exception
463   {
464     fileMenu.setText("File");
465     saveAs.setText("Save As...");
466     saveAs.setAccelerator(javax.swing.KeyStroke.getKeyStroke(
467             java.awt.event.KeyEvent.VK_S, Toolkit.getDefaultToolkit()
468                     .getMenuShortcutKeyMask()
469                     | java.awt.event.KeyEvent.SHIFT_MASK, false));
470     saveAs.addActionListener(new ActionListener()
471     {
472       public void actionPerformed(ActionEvent e)
473       {
474         saveAs_actionPerformed(e);
475       }
476     });
477     closeMenuItem.setText("Close");
478     closeMenuItem.setAccelerator(javax.swing.KeyStroke.getKeyStroke(
479             java.awt.event.KeyEvent.VK_W, Toolkit.getDefaultToolkit()
480                     .getMenuShortcutKeyMask(), false));
481     closeMenuItem.addActionListener(new java.awt.event.ActionListener()
482     {
483       public void actionPerformed(ActionEvent e)
484       {
485         closeMenuItem_actionPerformed(false);
486       }
487     });
488     editMenu.setText("Edit");
489     viewMenu.setText("View");
490     colourMenu.setText("Colour");
491     calculateMenu.setText("Calculate");
492     webService.setText("Web Service");
493     selectAllSequenceMenuItem.setText("Select All");
494     selectAllSequenceMenuItem.setAccelerator(javax.swing.KeyStroke
495             .getKeyStroke(java.awt.event.KeyEvent.VK_A, Toolkit
496                     .getDefaultToolkit().getMenuShortcutKeyMask(), false));
497     selectAllSequenceMenuItem
498             .addActionListener(new java.awt.event.ActionListener()
499             {
500               public void actionPerformed(ActionEvent e)
501               {
502                 selectAllSequenceMenuItem_actionPerformed(e);
503               }
504             });
505     deselectAllSequenceMenuItem.setText("Deselect All");
506     deselectAllSequenceMenuItem.setAccelerator(javax.swing.KeyStroke
507             .getKeyStroke(java.awt.event.KeyEvent.VK_ESCAPE, 0, false));
508     deselectAllSequenceMenuItem
509             .addActionListener(new java.awt.event.ActionListener()
510             {
511               public void actionPerformed(ActionEvent e)
512               {
513                 deselectAllSequenceMenuItem_actionPerformed(e);
514               }
515             });
516     invertSequenceMenuItem.setText("Invert Sequence Selection");
517     invertSequenceMenuItem.setAccelerator(javax.swing.KeyStroke
518             .getKeyStroke(java.awt.event.KeyEvent.VK_I, Toolkit
519                     .getDefaultToolkit().getMenuShortcutKeyMask(), false));
520     invertSequenceMenuItem
521             .addActionListener(new java.awt.event.ActionListener()
522             {
523               public void actionPerformed(ActionEvent e)
524               {
525                 invertSequenceMenuItem_actionPerformed(e);
526               }
527             });
528     remove2LeftMenuItem.setText("Remove Left");
529     remove2LeftMenuItem.setAccelerator(javax.swing.KeyStroke.getKeyStroke(
530             java.awt.event.KeyEvent.VK_L, Toolkit.getDefaultToolkit()
531                     .getMenuShortcutKeyMask(), false));
532     remove2LeftMenuItem
533             .addActionListener(new java.awt.event.ActionListener()
534             {
535               public void actionPerformed(ActionEvent e)
536               {
537                 remove2LeftMenuItem_actionPerformed(e);
538               }
539             });
540     remove2RightMenuItem.setText("Remove Right");
541     remove2RightMenuItem.setAccelerator(javax.swing.KeyStroke.getKeyStroke(
542             java.awt.event.KeyEvent.VK_R, Toolkit.getDefaultToolkit()
543                     .getMenuShortcutKeyMask(), false));
544     remove2RightMenuItem
545             .addActionListener(new java.awt.event.ActionListener()
546             {
547               public void actionPerformed(ActionEvent e)
548               {
549                 remove2RightMenuItem_actionPerformed(e);
550               }
551             });
552     removeGappedColumnMenuItem.setText("Remove Empty Columns");
553     removeGappedColumnMenuItem.setAccelerator(javax.swing.KeyStroke
554             .getKeyStroke(java.awt.event.KeyEvent.VK_E, Toolkit
555                     .getDefaultToolkit().getMenuShortcutKeyMask(), false));
556     removeGappedColumnMenuItem
557             .addActionListener(new java.awt.event.ActionListener()
558             {
559               public void actionPerformed(ActionEvent e)
560               {
561                 removeGappedColumnMenuItem_actionPerformed(e);
562               }
563             });
564     removeAllGapsMenuItem.setText("Remove All Gaps");
565     removeAllGapsMenuItem.setAccelerator(javax.swing.KeyStroke
566             .getKeyStroke(java.awt.event.KeyEvent.VK_E, Toolkit
567                     .getDefaultToolkit().getMenuShortcutKeyMask()
568                     | java.awt.event.KeyEvent.SHIFT_MASK, false));
569     removeAllGapsMenuItem
570             .addActionListener(new java.awt.event.ActionListener()
571             {
572               public void actionPerformed(ActionEvent e)
573               {
574                 removeAllGapsMenuItem_actionPerformed(e);
575               }
576             });
577     viewBoxesMenuItem.setText("Boxes");
578     viewBoxesMenuItem.setState(true);
579     viewBoxesMenuItem.addActionListener(new java.awt.event.ActionListener()
580     {
581       public void actionPerformed(ActionEvent e)
582       {
583         viewBoxesMenuItem_actionPerformed(e);
584       }
585     });
586     viewTextMenuItem.setText("Text");
587     viewTextMenuItem.setState(true);
588     viewTextMenuItem.addActionListener(new java.awt.event.ActionListener()
589     {
590       public void actionPerformed(ActionEvent e)
591       {
592         viewTextMenuItem_actionPerformed(e);
593       }
594     });
595     sortPairwiseMenuItem.setText("by Pairwise Identity");
596     sortPairwiseMenuItem
597             .addActionListener(new java.awt.event.ActionListener()
598             {
599               public void actionPerformed(ActionEvent e)
600               {
601                 sortPairwiseMenuItem_actionPerformed(e);
602               }
603             });
604     sortIDMenuItem.setText("by ID");
605     sortIDMenuItem.addActionListener(new java.awt.event.ActionListener()
606     {
607       public void actionPerformed(ActionEvent e)
608       {
609         sortIDMenuItem_actionPerformed(e);
610       }
611     });
612     sortGroupMenuItem.setText("by Group");
613     sortGroupMenuItem.addActionListener(new java.awt.event.ActionListener()
614     {
615       public void actionPerformed(ActionEvent e)
616       {
617         sortGroupMenuItem_actionPerformed(e);
618       }
619     });
620     removeRedundancyMenuItem.setText("Remove Redundancy...");
621     removeRedundancyMenuItem.setAccelerator(javax.swing.KeyStroke
622             .getKeyStroke(java.awt.event.KeyEvent.VK_D, Toolkit
623                     .getDefaultToolkit().getMenuShortcutKeyMask(), false));
624     removeRedundancyMenuItem
625             .addActionListener(new java.awt.event.ActionListener()
626             {
627               public void actionPerformed(ActionEvent e)
628               {
629                 removeRedundancyMenuItem_actionPerformed(e);
630               }
631             });
632     pairwiseAlignmentMenuItem.setText("Pairwise Alignments...");
633     pairwiseAlignmentMenuItem
634             .addActionListener(new java.awt.event.ActionListener()
635             {
636               public void actionPerformed(ActionEvent e)
637               {
638                 pairwiseAlignmentMenuItem_actionPerformed(e);
639               }
640             });
641     PCAMenuItem.setText("Principal Component Analysis");
642     PCAMenuItem.addActionListener(new java.awt.event.ActionListener()
643     {
644       public void actionPerformed(ActionEvent e)
645       {
646         PCAMenuItem_actionPerformed(e);
647       }
648     });
649     averageDistanceTreeMenuItem
650             .setText("Average Distance Using % Identity");
651     averageDistanceTreeMenuItem
652             .addActionListener(new java.awt.event.ActionListener()
653             {
654               public void actionPerformed(ActionEvent e)
655               {
656                 averageDistanceTreeMenuItem_actionPerformed(e);
657               }
658             });
659     neighbourTreeMenuItem.setText("Neighbour Joining Using % Identity");
660     neighbourTreeMenuItem
661             .addActionListener(new java.awt.event.ActionListener()
662             {
663               public void actionPerformed(ActionEvent e)
664               {
665                 neighbourTreeMenuItem_actionPerformed(e);
666               }
667             });
668     this.getContentPane().setLayout(borderLayout1);
669     alignFrameMenuBar.setFont(new java.awt.Font("Verdana", 0, 11));
670     statusBar.setBackground(Color.white);
671     statusBar.setFont(new java.awt.Font("Verdana", 0, 11));
672     statusBar.setBorder(BorderFactory.createLineBorder(Color.black));
673     statusBar.setText("Status bar");
674     outputTextboxMenu.setText("Output to Textbox");
675     clustalColour.setText("Clustalx");
676
677     clustalColour.addActionListener(new java.awt.event.ActionListener()
678     {
679       public void actionPerformed(ActionEvent e)
680       {
681         clustalColour_actionPerformed(e);
682       }
683     });
684     zappoColour.setText("Zappo");
685     zappoColour.addActionListener(new java.awt.event.ActionListener()
686     {
687       public void actionPerformed(ActionEvent e)
688       {
689         zappoColour_actionPerformed(e);
690       }
691     });
692     taylorColour.setText("Taylor");
693     taylorColour.addActionListener(new java.awt.event.ActionListener()
694     {
695       public void actionPerformed(ActionEvent e)
696       {
697         taylorColour_actionPerformed(e);
698       }
699     });
700     hydrophobicityColour.setText("Hydrophobicity");
701     hydrophobicityColour
702             .addActionListener(new java.awt.event.ActionListener()
703             {
704               public void actionPerformed(ActionEvent e)
705               {
706                 hydrophobicityColour_actionPerformed(e);
707               }
708             });
709     helixColour.setText("Helix Propensity");
710     helixColour.addActionListener(new java.awt.event.ActionListener()
711     {
712       public void actionPerformed(ActionEvent e)
713       {
714         helixColour_actionPerformed(e);
715       }
716     });
717     strandColour.setText("Strand Propensity");
718     strandColour.addActionListener(new java.awt.event.ActionListener()
719     {
720       public void actionPerformed(ActionEvent e)
721       {
722         strandColour_actionPerformed(e);
723       }
724     });
725     turnColour.setText("Turn Propensity");
726     turnColour.addActionListener(new java.awt.event.ActionListener()
727     {
728       public void actionPerformed(ActionEvent e)
729       {
730         turnColour_actionPerformed(e);
731       }
732     });
733     buriedColour.setText("Buried Index");
734     buriedColour.addActionListener(new java.awt.event.ActionListener()
735     {
736       public void actionPerformed(ActionEvent e)
737       {
738         buriedColour_actionPerformed(e);
739       }
740     });
741     userDefinedColour.setText("User Defined...");
742     userDefinedColour.addActionListener(new java.awt.event.ActionListener()
743     {
744       public void actionPerformed(ActionEvent e)
745       {
746         userDefinedColour_actionPerformed(e);
747       }
748     });
749     PIDColour.setText("Percentage Identity");
750     PIDColour.addActionListener(new java.awt.event.ActionListener()
751     {
752       public void actionPerformed(ActionEvent e)
753       {
754         PIDColour_actionPerformed(e);
755       }
756     });
757     BLOSUM62Colour.setText("BLOSUM62 Score");
758     BLOSUM62Colour.addActionListener(new java.awt.event.ActionListener()
759     {
760       public void actionPerformed(ActionEvent e)
761       {
762         BLOSUM62Colour_actionPerformed(e);
763       }
764     });
765     avDistanceTreeBlosumMenuItem.setText("Average Distance Using BLOSUM62");
766     avDistanceTreeBlosumMenuItem
767             .addActionListener(new java.awt.event.ActionListener()
768             {
769               public void actionPerformed(ActionEvent e)
770               {
771                 avTreeBlosumMenuItem_actionPerformed(e);
772               }
773             });
774     njTreeBlosumMenuItem.setText("Neighbour Joining using BLOSUM62");
775     njTreeBlosumMenuItem
776             .addActionListener(new java.awt.event.ActionListener()
777             {
778               public void actionPerformed(ActionEvent e)
779               {
780                 njTreeBlosumMenuItem_actionPerformed(e);
781               }
782             });
783     annotationPanelMenuItem.setActionCommand("");
784     annotationPanelMenuItem.setText("Show Annotations");
785     annotationPanelMenuItem.setState(jalview.bin.Cache.getDefault(
786             "SHOW_ANNOTATIONS", true));
787     annotationPanelMenuItem
788             .addActionListener(new java.awt.event.ActionListener()
789             {
790               public void actionPerformed(ActionEvent e)
791               {
792                 annotationPanelMenuItem_actionPerformed(e);
793               }
794             });
795     colourTextMenuItem.setText("Colour Text");
796     colourTextMenuItem
797             .addActionListener(new java.awt.event.ActionListener()
798             {
799               public void actionPerformed(ActionEvent e)
800               {
801                 colourTextMenuItem_actionPerformed(e);
802               }
803             });
804     htmlMenuItem.setText("HTML");
805     htmlMenuItem.addActionListener(new java.awt.event.ActionListener()
806     {
807       public void actionPerformed(ActionEvent e)
808       {
809         htmlMenuItem_actionPerformed(e);
810       }
811     });
812     overviewMenuItem.setText("Overview Window");
813     overviewMenuItem.addActionListener(new java.awt.event.ActionListener()
814     {
815       public void actionPerformed(ActionEvent e)
816       {
817         overviewMenuItem_actionPerformed(e);
818       }
819     });
820     undoMenuItem.setEnabled(false);
821     undoMenuItem.setText("Undo");
822     undoMenuItem.setAccelerator(javax.swing.KeyStroke.getKeyStroke(
823             java.awt.event.KeyEvent.VK_Z, Toolkit.getDefaultToolkit()
824                     .getMenuShortcutKeyMask(), false));
825     undoMenuItem.addActionListener(new java.awt.event.ActionListener()
826     {
827       public void actionPerformed(ActionEvent e)
828       {
829         undoMenuItem_actionPerformed(e);
830       }
831     });
832     redoMenuItem.setEnabled(false);
833     redoMenuItem.setText("Redo");
834     redoMenuItem.setAccelerator(javax.swing.KeyStroke.getKeyStroke(
835             java.awt.event.KeyEvent.VK_Y, Toolkit.getDefaultToolkit()
836                     .getMenuShortcutKeyMask(), false));
837     redoMenuItem.addActionListener(new java.awt.event.ActionListener()
838     {
839       public void actionPerformed(ActionEvent e)
840       {
841         redoMenuItem_actionPerformed(e);
842       }
843     });
844     conservationMenuItem.setText("By Conservation");
845     conservationMenuItem
846             .addActionListener(new java.awt.event.ActionListener()
847             {
848               public void actionPerformed(ActionEvent e)
849               {
850                 conservationMenuItem_actionPerformed(e);
851               }
852             });
853     noColourmenuItem.setText("None");
854     noColourmenuItem.addActionListener(new java.awt.event.ActionListener()
855     {
856       public void actionPerformed(ActionEvent e)
857       {
858         noColourmenuItem_actionPerformed(e);
859       }
860     });
861     wrapMenuItem.setText("Wrap");
862     wrapMenuItem.addActionListener(new java.awt.event.ActionListener()
863     {
864       public void actionPerformed(ActionEvent e)
865       {
866         wrapMenuItem_actionPerformed(e);
867       }
868     });
869     printMenuItem.setText("Print ...");
870     printMenuItem.setAccelerator(javax.swing.KeyStroke.getKeyStroke(
871             java.awt.event.KeyEvent.VK_P, Toolkit.getDefaultToolkit()
872                     .getMenuShortcutKeyMask(), false));
873     printMenuItem.addActionListener(new java.awt.event.ActionListener()
874     {
875       public void actionPerformed(ActionEvent e)
876       {
877         printMenuItem_actionPerformed(e);
878       }
879     });
880     renderGapsMenuItem.setText("Show Gaps");
881     renderGapsMenuItem.setState(true);
882     renderGapsMenuItem
883             .addActionListener(new java.awt.event.ActionListener()
884             {
885               public void actionPerformed(ActionEvent e)
886               {
887                 renderGapsMenuItem_actionPerformed(e);
888               }
889             });
890     findMenuItem.setText("Find...");
891     findMenuItem.setAccelerator(javax.swing.KeyStroke.getKeyStroke(
892             java.awt.event.KeyEvent.VK_F, Toolkit.getDefaultToolkit()
893                     .getMenuShortcutKeyMask(), false));
894     findMenuItem.addActionListener(new java.awt.event.ActionListener()
895     {
896       public void actionPerformed(ActionEvent e)
897       {
898         findMenuItem_actionPerformed(e);
899       }
900     });
901     abovePIDThreshold.setText("Above Identity Threshold");
902     abovePIDThreshold.addActionListener(new java.awt.event.ActionListener()
903     {
904       public void actionPerformed(ActionEvent e)
905       {
906         abovePIDThreshold_actionPerformed(e);
907       }
908     });
909     showSeqFeatures.setText("Show Sequence Features");
910     showSeqFeatures.addActionListener(new ActionListener()
911     {
912       public void actionPerformed(ActionEvent actionEvent)
913       {
914         showSeqFeatures_actionPerformed(actionEvent);
915       }
916     });
917     nucleotideColour.setText("Nucleotide");
918     nucleotideColour.addActionListener(new java.awt.event.ActionListener()
919     {
920       public void actionPerformed(ActionEvent e)
921       {
922         nucleotideColour_actionPerformed(e);
923       }
924     });
925     deleteGroups.setText("Undefine groups");
926     deleteGroups.setAccelerator(javax.swing.KeyStroke.getKeyStroke(
927             java.awt.event.KeyEvent.VK_U, Toolkit.getDefaultToolkit()
928                     .getMenuShortcutKeyMask(), false));
929     deleteGroups.addActionListener(new java.awt.event.ActionListener()
930     {
931       public void actionPerformed(ActionEvent e)
932       {
933         deleteGroups_actionPerformed(e);
934       }
935     });
936     copy.setText("Copy");
937     copy.setAccelerator(javax.swing.KeyStroke.getKeyStroke(
938             java.awt.event.KeyEvent.VK_C, Toolkit.getDefaultToolkit()
939                     .getMenuShortcutKeyMask(), false));
940
941     copy.addActionListener(new java.awt.event.ActionListener()
942     {
943       public void actionPerformed(ActionEvent e)
944       {
945         copy_actionPerformed(e);
946       }
947     });
948     cut.setText("Cut");
949     cut.setAccelerator(javax.swing.KeyStroke.getKeyStroke(
950             java.awt.event.KeyEvent.VK_X, Toolkit.getDefaultToolkit()
951                     .getMenuShortcutKeyMask(), false));
952     cut.addActionListener(new java.awt.event.ActionListener()
953     {
954       public void actionPerformed(ActionEvent e)
955       {
956         cut_actionPerformed(e);
957       }
958     });
959     delete.setText("Delete");
960     delete.setAccelerator(javax.swing.KeyStroke.getKeyStroke(
961             java.awt.event.KeyEvent.VK_BACK_SPACE, 0, false));
962     delete.addActionListener(new java.awt.event.ActionListener()
963     {
964       public void actionPerformed(ActionEvent e)
965       {
966         delete_actionPerformed(e);
967       }
968     });
969     pasteMenu.setText("Paste");
970     pasteNew.setText("To New Alignment");
971     pasteNew.setAccelerator(javax.swing.KeyStroke.getKeyStroke(
972             java.awt.event.KeyEvent.VK_V, Toolkit.getDefaultToolkit()
973                     .getMenuShortcutKeyMask()
974                     | java.awt.event.KeyEvent.SHIFT_MASK, false));
975     pasteNew.addActionListener(new java.awt.event.ActionListener()
976     {
977       public void actionPerformed(ActionEvent e)
978       {
979         pasteNew_actionPerformed(e);
980       }
981     });
982     pasteThis.setText("Add To This Alignment");
983     pasteThis.setAccelerator(javax.swing.KeyStroke.getKeyStroke(
984             java.awt.event.KeyEvent.VK_V, Toolkit.getDefaultToolkit()
985                     .getMenuShortcutKeyMask(), false));
986     pasteThis.addActionListener(new java.awt.event.ActionListener()
987     {
988       public void actionPerformed(ActionEvent e)
989       {
990         pasteThis_actionPerformed(e);
991       }
992     });
993     applyToAllGroups.setText("Apply Colour To All Groups");
994     applyToAllGroups.addActionListener(new java.awt.event.ActionListener()
995     {
996       public void actionPerformed(ActionEvent e)
997       {
998         applyToAllGroups_actionPerformed(e);
999       }
1000     });
1001     createPNG.addActionListener(new java.awt.event.ActionListener()
1002     {
1003       public void actionPerformed(ActionEvent e)
1004       {
1005         createPNG(null);
1006       }
1007     });
1008     createPNG.setActionCommand("Save As PNG Image");
1009     createPNG.setText("PNG");
1010     font.setText("Font...");
1011     font.addActionListener(new java.awt.event.ActionListener()
1012     {
1013       public void actionPerformed(ActionEvent e)
1014       {
1015         font_actionPerformed(e);
1016       }
1017     });
1018
1019     seqLimits.setText("Show Sequence Limits");
1020     seqLimits.setState(jalview.bin.Cache.getDefault("SHOW_JVSUFFIX", true));
1021     seqLimits.addActionListener(new java.awt.event.ActionListener()
1022     {
1023       public void actionPerformed(ActionEvent e)
1024       {
1025         seqLimit_actionPerformed(e);
1026       }
1027     });
1028     epsFile.setText("EPS");
1029     epsFile.addActionListener(new java.awt.event.ActionListener()
1030     {
1031       public void actionPerformed(ActionEvent e)
1032       {
1033         createEPS(null);
1034       }
1035     });
1036     LoadtreeMenuItem.setActionCommand("Load a tree for this sequence set");
1037     LoadtreeMenuItem.setText("Load Associated Tree");
1038     LoadtreeMenuItem.addActionListener(new java.awt.event.ActionListener()
1039     {
1040       public void actionPerformed(ActionEvent e)
1041       {
1042         LoadtreeMenuItem_actionPerformed(e);
1043       }
1044     });
1045     scaleAbove.setVisible(false);
1046     scaleAbove.setText("Scale Above");
1047     scaleAbove.addActionListener(new java.awt.event.ActionListener()
1048     {
1049       public void actionPerformed(ActionEvent e)
1050       {
1051         scaleAbove_actionPerformed(e);
1052       }
1053     });
1054     scaleLeft.setVisible(false);
1055     scaleLeft.setSelected(true);
1056     scaleLeft.setText("Scale Left");
1057     scaleLeft.addActionListener(new java.awt.event.ActionListener()
1058     {
1059       public void actionPerformed(ActionEvent e)
1060       {
1061         scaleLeft_actionPerformed(e);
1062       }
1063     });
1064     scaleRight.setVisible(false);
1065     scaleRight.setSelected(true);
1066     scaleRight.setText("Scale Right");
1067     scaleRight.addActionListener(new java.awt.event.ActionListener()
1068     {
1069       public void actionPerformed(ActionEvent e)
1070       {
1071         scaleRight_actionPerformed(e);
1072       }
1073     });
1074     centreColumnLabelsMenuItem.setVisible(true);
1075     centreColumnLabelsMenuItem.setState(false);
1076     centreColumnLabelsMenuItem.setText("Centre Column Labels");
1077     centreColumnLabelsMenuItem
1078             .addActionListener(new java.awt.event.ActionListener()
1079             {
1080               public void actionPerformed(ActionEvent e)
1081               {
1082                 centreColumnLabels_actionPerformed(e);
1083               }
1084             });
1085
1086     modifyPID.setText("Modify Identity Threshold...");
1087     modifyPID.addActionListener(new java.awt.event.ActionListener()
1088     {
1089       public void actionPerformed(ActionEvent e)
1090       {
1091         modifyPID_actionPerformed(e);
1092       }
1093     });
1094     modifyConservation.setText("Modify Conservation Threshold...");
1095     modifyConservation
1096             .addActionListener(new java.awt.event.ActionListener()
1097             {
1098               public void actionPerformed(ActionEvent e)
1099               {
1100                 modifyConservation_actionPerformed(e);
1101               }
1102             });
1103     sortByTreeMenu.setText("By Tree Order");
1104     sort.setText("Sort");
1105     sort.addMenuListener(new MenuListener()
1106     {
1107       public void menuSelected(MenuEvent e)
1108       {
1109         buildTreeMenu();
1110       }
1111
1112       public void menuDeselected(MenuEvent e)
1113       {
1114       }
1115
1116       public void menuCanceled(MenuEvent e)
1117       {
1118       }
1119     });
1120     sortByAnnotScore.setText("by Score");
1121     sort.add(sortByAnnotScore);
1122     sortByAnnotScore.addMenuListener(new javax.swing.event.MenuListener()
1123     {
1124
1125       public void menuCanceled(MenuEvent e)
1126       {
1127       }
1128
1129       public void menuDeselected(MenuEvent e)
1130       {
1131       }
1132
1133       public void menuSelected(MenuEvent e)
1134       {
1135         buildSortByAnnotationScoresMenu();
1136       }
1137     });
1138     sortByAnnotScore.setVisible(false);
1139
1140     calculate.setText("Calculate Tree");
1141
1142     jMenu2.setText("Export Image");
1143     padGapsMenuitem.setText("Pad Gaps");
1144     padGapsMenuitem.setState(jalview.bin.Cache
1145             .getDefault("PAD_GAPS", false));
1146     padGapsMenuitem.addActionListener(new ActionListener()
1147     {
1148       public void actionPerformed(ActionEvent e)
1149       {
1150         padGapsMenuitem_actionPerformed(e);
1151       }
1152     });
1153     vamsasStore.setVisible(false);
1154     vamsasStore.setText("VAMSAS store");
1155     vamsasStore.addActionListener(new ActionListener()
1156     {
1157       public void actionPerformed(ActionEvent e)
1158       {
1159         vamsasStore_actionPerformed(e);
1160       }
1161     });
1162     showTranslation.setText("Translate cDNA");
1163     showTranslation.addActionListener(new ActionListener()
1164     {
1165       public void actionPerformed(ActionEvent e)
1166       {
1167         showTranslation_actionPerformed(e);
1168       }
1169     });
1170     extractScores.setText("Extract Scores...");
1171     extractScores.addActionListener(new ActionListener()
1172     {
1173       public void actionPerformed(ActionEvent e)
1174       {
1175         extractScores_actionPerformed(e);
1176       }
1177     });
1178     extractScores.setVisible(true); // JBPNote: TODO: make gui for regex based
1179                                     // score extraction
1180     showProducts.setText("Get Cross References");
1181     /*
1182      * showProducts.addActionListener(new ActionListener() {
1183      * 
1184      * public void actionPerformed(ActionEvent e) {
1185      * showProducts_actionPerformed(e); } });
1186      */
1187     featureSettings.setText("Feature Settings...");
1188     featureSettings.addActionListener(new ActionListener()
1189     {
1190       public void actionPerformed(ActionEvent e)
1191       {
1192         featureSettings_actionPerformed(e);
1193       }
1194     });
1195     fetchSequence.setText("Fetch Sequence(s)...");
1196     fetchSequence.addActionListener(new ActionListener()
1197     {
1198       public void actionPerformed(ActionEvent e)
1199       {
1200         fetchSequence_actionPerformed(e);
1201       }
1202     });
1203
1204     annotationColour.setText("By Annotation...");
1205     annotationColour.addActionListener(new ActionListener()
1206     {
1207       public void actionPerformed(ActionEvent e)
1208       {
1209         annotationColour_actionPerformed(e);
1210       }
1211     });
1212     associatedData.setText("Load Features / Annotations");
1213     associatedData.addActionListener(new ActionListener()
1214     {
1215       public void actionPerformed(ActionEvent e)
1216       {
1217         associatedData_actionPerformed(e);
1218       }
1219     });
1220     autoCalculate.setText("Autocalculate Consensus");
1221     autoCalculate.setState(jalview.bin.Cache.getDefault(
1222             "AUTO_CALC_CONSENSUS", true));
1223     autoCalculate.addActionListener(new ActionListener()
1224     {
1225       public void actionPerformed(ActionEvent e)
1226       {
1227         autoCalculate_actionPerformed(e);
1228       }
1229     });
1230     addSequenceMenu.setText("Add Sequences");
1231     addFromFile.setText("From File");
1232     addFromFile.addActionListener(new ActionListener()
1233     {
1234       public void actionPerformed(ActionEvent e)
1235       {
1236         addFromFile_actionPerformed(e);
1237       }
1238     });
1239     addFromText.setText("From Textbox");
1240     addFromText.addActionListener(new ActionListener()
1241     {
1242       public void actionPerformed(ActionEvent e)
1243       {
1244         addFromText_actionPerformed(e);
1245       }
1246     });
1247     addFromURL.setText("From URL");
1248     addFromURL.addActionListener(new ActionListener()
1249     {
1250       public void actionPerformed(ActionEvent e)
1251       {
1252         addFromURL_actionPerformed(e);
1253       }
1254     });
1255     exportFeatures.setText("Export Features...");
1256     exportFeatures.addActionListener(new ActionListener()
1257     {
1258       public void actionPerformed(ActionEvent e)
1259       {
1260         exportFeatures_actionPerformed(e);
1261       }
1262     });
1263     exportAnnotations.setText("Export Annotations...");
1264     exportAnnotations.addActionListener(new ActionListener()
1265     {
1266       public void actionPerformed(ActionEvent e)
1267       {
1268         exportAnnotations_actionPerformed(e);
1269       }
1270     });
1271     statusPanel.setLayout(gridLayout1);
1272     jMenu3.setText("Show");
1273     showAllSeqs.setText("All Sequences");
1274     showAllSeqs.addActionListener(new ActionListener()
1275     {
1276       public void actionPerformed(ActionEvent e)
1277       {
1278         showAllSeqs_actionPerformed(e);
1279       }
1280     });
1281     showAllColumns.setText("All Columns");
1282     showAllColumns.addActionListener(new ActionListener()
1283     {
1284       public void actionPerformed(ActionEvent e)
1285       {
1286         showAllColumns_actionPerformed(e);
1287       }
1288     });
1289     hideMenu.setText("Hide");
1290     hideSelSequences.setText("Selected Sequences");
1291     hideSelSequences.addActionListener(new ActionListener()
1292     {
1293       public void actionPerformed(ActionEvent e)
1294       {
1295         hideSelSequences_actionPerformed(e);
1296       }
1297     });
1298     hideSelColumns.setText("Selected Columns");
1299     hideSelColumns.addActionListener(new ActionListener()
1300     {
1301       public void actionPerformed(ActionEvent e)
1302       {
1303         hideSelColumns_actionPerformed(e);
1304       }
1305     });
1306     hiddenMarkers.setText("Show Hidden Markers");
1307     hiddenMarkers.addActionListener(new ActionListener()
1308     {
1309       public void actionPerformed(ActionEvent e)
1310       {
1311         hiddenMarkers_actionPerformed(e);
1312       }
1313     });
1314     invertColSel.setText("Invert Column Selection");
1315     invertColSel.setAccelerator(javax.swing.KeyStroke.getKeyStroke(
1316             java.awt.event.KeyEvent.VK_I, Toolkit.getDefaultToolkit()
1317                     .getMenuShortcutKeyMask()
1318                     | java.awt.event.KeyEvent.ALT_MASK, false));
1319     invertColSel.addActionListener(new ActionListener()
1320     {
1321       public void actionPerformed(ActionEvent e)
1322       {
1323         invertColSel_actionPerformed(e);
1324       }
1325     });
1326     tabbedPane.addChangeListener(new javax.swing.event.ChangeListener()
1327     {
1328       public void stateChanged(ChangeEvent evt)
1329       {
1330         JTabbedPane pane = (JTabbedPane) evt.getSource();
1331         int sel = pane.getSelectedIndex();
1332         tabSelectionChanged(sel);
1333       }
1334     });
1335     tabbedPane.addMouseListener(new MouseAdapter()
1336     {
1337       public void mousePressed(MouseEvent e)
1338       {
1339         tabbedPane_mousePressed(e);
1340       }
1341     });
1342     tabbedPane.addFocusListener(new FocusAdapter()
1343     {
1344       public void focusGained(FocusEvent e)
1345       {
1346         tabbedPane_focusGained(e);
1347       }
1348     });
1349     save.setText("Save");
1350     save.setAccelerator(javax.swing.KeyStroke.getKeyStroke(
1351             java.awt.event.KeyEvent.VK_S, Toolkit.getDefaultToolkit()
1352                     .getMenuShortcutKeyMask(), false));
1353     save.addActionListener(new ActionListener()
1354     {
1355       public void actionPerformed(ActionEvent e)
1356       {
1357         save_actionPerformed(e);
1358       }
1359     });
1360     reload.setEnabled(false);
1361     reload.setText("Reload");
1362     reload.addActionListener(new ActionListener()
1363     {
1364       public void actionPerformed(ActionEvent e)
1365       {
1366         reload_actionPerformed(e);
1367       }
1368     });
1369     newView.setText("New View");
1370     newView.setAccelerator(javax.swing.KeyStroke.getKeyStroke(
1371             java.awt.event.KeyEvent.VK_T, Toolkit.getDefaultToolkit()
1372                     .getMenuShortcutKeyMask(), false));
1373     newView.addActionListener(new ActionListener()
1374     {
1375       public void actionPerformed(ActionEvent e)
1376       {
1377         newView_actionPerformed(e);
1378       }
1379     });
1380     tabbedPane.setToolTipText("<html><i> Right-click to rename tab"
1381             + "<br> Press X to eXpand tabs, G to reGroup.</i></html>");
1382     textColour.setText("Colour Text ...");
1383     textColour.addActionListener(new ActionListener()
1384     {
1385       public void actionPerformed(ActionEvent e)
1386       {
1387         textColour_actionPerformed(e);
1388       }
1389     });
1390     formatMenu.setText("Format");
1391     selectMenu.setText("Select");
1392     idRightAlign.setText("Right Align Sequence Id");
1393     idRightAlign.addActionListener(new ActionListener()
1394     {
1395       public void actionPerformed(ActionEvent e)
1396       {
1397         idRightAlign_actionPerformed(e);
1398       }
1399     });
1400     gatherViews.setEnabled(false);
1401     gatherViews.setText("Gather Views");
1402     gatherViews.setAccelerator(javax.swing.KeyStroke.getKeyStroke(
1403             java.awt.event.KeyEvent.VK_G, 0, false));
1404     gatherViews.addActionListener(new ActionListener()
1405     {
1406       public void actionPerformed(ActionEvent e)
1407       {
1408         gatherViews_actionPerformed(e);
1409       }
1410     });
1411     expandViews.setEnabled(false);
1412     expandViews.setText("Expand Views");
1413     expandViews.setAccelerator(javax.swing.KeyStroke.getKeyStroke(
1414             java.awt.event.KeyEvent.VK_X, 0, false));
1415     expandViews.addActionListener(new ActionListener()
1416     {
1417       public void actionPerformed(ActionEvent e)
1418       {
1419         expandViews_actionPerformed(e);
1420       }
1421     });
1422     pageSetup.setText("Page Setup ...");
1423     pageSetup.addActionListener(new ActionListener()
1424     {
1425       public void actionPerformed(ActionEvent e)
1426       {
1427         pageSetup_actionPerformed(e);
1428       }
1429     });
1430     alignmentProperties.setText("Alignment Properties...");
1431     alignmentProperties.addActionListener(new ActionListener()
1432     {
1433       public void actionPerformed(ActionEvent actionEvent)
1434       {
1435         alignmentProperties();
1436       }
1437     });
1438
1439     alignFrameMenuBar.add(fileMenu);
1440     alignFrameMenuBar.add(editMenu);
1441     alignFrameMenuBar.add(selectMenu);
1442     alignFrameMenuBar.add(viewMenu);
1443     alignFrameMenuBar.add(formatMenu);
1444     alignFrameMenuBar.add(colourMenu);
1445     alignFrameMenuBar.add(calculateMenu);
1446     alignFrameMenuBar.add(webService);
1447     fileMenu.add(fetchSequence);
1448     fileMenu.add(addSequenceMenu);
1449     fileMenu.add(reload);
1450     fileMenu.addSeparator();
1451     fileMenu.add(vamsasStore);
1452     fileMenu.add(save);
1453     fileMenu.add(saveAs);
1454     fileMenu.add(outputTextboxMenu);
1455     fileMenu.add(pageSetup);
1456     fileMenu.add(printMenuItem);
1457     fileMenu.addSeparator();
1458     fileMenu.add(jMenu2);
1459     fileMenu.add(exportFeatures);
1460     fileMenu.add(exportAnnotations);
1461     fileMenu.add(LoadtreeMenuItem);
1462     fileMenu.add(associatedData);
1463     fileMenu.addSeparator();
1464     fileMenu.add(closeMenuItem);
1465     editMenu.add(undoMenuItem);
1466     editMenu.add(redoMenuItem);
1467     editMenu.add(cut);
1468     editMenu.add(copy);
1469     editMenu.add(pasteMenu);
1470     editMenu.add(delete);
1471     editMenu.addSeparator();
1472     editMenu.add(remove2LeftMenuItem);
1473     editMenu.add(remove2RightMenuItem);
1474     editMenu.add(removeGappedColumnMenuItem);
1475     editMenu.add(removeAllGapsMenuItem);
1476     editMenu.add(removeRedundancyMenuItem);
1477     editMenu.addSeparator();
1478     editMenu.add(padGapsMenuitem);
1479     viewMenu.add(newView);
1480     viewMenu.add(expandViews);
1481     viewMenu.add(gatherViews);
1482     viewMenu.addSeparator();
1483     viewMenu.add(jMenu3);
1484     viewMenu.add(hideMenu);
1485     viewMenu.addSeparator();
1486     viewMenu.add(annotationPanelMenuItem);
1487     viewMenu.addSeparator();
1488     viewMenu.add(showSeqFeatures);
1489     viewMenu.add(featureSettings);
1490     viewMenu.addSeparator();
1491     viewMenu.add(alignmentProperties);
1492     viewMenu.addSeparator();
1493     viewMenu.add(overviewMenuItem);
1494     colourMenu.add(applyToAllGroups);
1495     colourMenu.add(textColour);
1496     colourMenu.addSeparator();
1497     colourMenu.add(noColourmenuItem);
1498     colourMenu.add(clustalColour);
1499     colourMenu.add(BLOSUM62Colour);
1500     colourMenu.add(PIDColour);
1501     colourMenu.add(zappoColour);
1502     colourMenu.add(taylorColour);
1503     colourMenu.add(hydrophobicityColour);
1504     colourMenu.add(helixColour);
1505     colourMenu.add(strandColour);
1506     colourMenu.add(turnColour);
1507     colourMenu.add(buriedColour);
1508     colourMenu.add(nucleotideColour);
1509     colourMenu.add(userDefinedColour);
1510     colourMenu.addSeparator();
1511     colourMenu.add(conservationMenuItem);
1512     colourMenu.add(modifyConservation);
1513     colourMenu.add(abovePIDThreshold);
1514     colourMenu.add(modifyPID);
1515     colourMenu.add(annotationColour);
1516     calculateMenu.add(sort);
1517     calculateMenu.add(calculate);
1518     calculateMenu.addSeparator();
1519     calculateMenu.add(pairwiseAlignmentMenuItem);
1520     calculateMenu.add(PCAMenuItem);
1521     calculateMenu.addSeparator();
1522     calculateMenu.add(showTranslation);
1523     calculateMenu.add(showProducts);
1524     calculateMenu.add(autoCalculate);
1525     calculateMenu.addSeparator();
1526     calculateMenu.add(extractScores);
1527     webServiceNoServices = new JMenuItem("<No Services>");
1528     webService.add(webServiceNoServices);
1529     pasteMenu.add(pasteNew);
1530     pasteMenu.add(pasteThis);
1531     sort.add(sortIDMenuItem);
1532     sort.add(sortGroupMenuItem);
1533     sort.add(sortPairwiseMenuItem);
1534     sort.add(sortByTreeMenu);
1535     calculate.add(averageDistanceTreeMenuItem);
1536     calculate.add(neighbourTreeMenuItem);
1537     calculate.add(avDistanceTreeBlosumMenuItem);
1538     calculate.add(njTreeBlosumMenuItem);
1539     jMenu2.add(htmlMenuItem);
1540     jMenu2.add(epsFile);
1541     jMenu2.add(createPNG);
1542     addSequenceMenu.add(addFromFile);
1543     addSequenceMenu.add(addFromText);
1544     addSequenceMenu.add(addFromURL);
1545     this.getContentPane().add(statusPanel, java.awt.BorderLayout.SOUTH);
1546     statusPanel.add(statusBar, null);
1547     this.getContentPane().add(tabbedPane, java.awt.BorderLayout.CENTER);
1548     jMenu3.add(showAllColumns);
1549     jMenu3.add(showAllSeqs);
1550     hideMenu.add(hideSelColumns);
1551     hideMenu.add(hideSelSequences);
1552     formatMenu.add(font);
1553     formatMenu.addSeparator();
1554     formatMenu.add(wrapMenuItem);
1555     formatMenu.add(scaleAbove);
1556     formatMenu.add(scaleLeft);
1557     formatMenu.add(scaleRight);
1558     formatMenu.add(seqLimits);
1559     formatMenu.add(idRightAlign);
1560     formatMenu.add(hiddenMarkers);
1561     formatMenu.add(viewBoxesMenuItem);
1562     formatMenu.add(viewTextMenuItem);
1563     formatMenu.add(colourTextMenuItem);
1564     formatMenu.add(renderGapsMenuItem);
1565     formatMenu.add(centreColumnLabelsMenuItem);
1566     selectMenu.add(findMenuItem);
1567     selectMenu.addSeparator();
1568     selectMenu.add(selectAllSequenceMenuItem);
1569     selectMenu.add(deselectAllSequenceMenuItem);
1570     selectMenu.add(invertSequenceMenuItem);
1571     selectMenu.add(invertColSel);
1572     selectMenu.add(deleteGroups);
1573   }
1574
1575   protected void centreColumnLabels_actionPerformed(ActionEvent e)
1576   {
1577   }
1578
1579   protected void showProducts_actionPerformed(ActionEvent e)
1580   {
1581   }
1582
1583   protected void buildSortByAnnotationScoresMenu()
1584   {
1585   }
1586
1587   protected void extractScores_actionPerformed(ActionEvent e)
1588   {
1589   }
1590
1591   protected void outputText_actionPerformed(ActionEvent e)
1592   {
1593   }
1594
1595   public void addFromFile_actionPerformed(ActionEvent e)
1596   {
1597
1598   }
1599
1600   public void addFromText_actionPerformed(ActionEvent e)
1601   {
1602
1603   }
1604
1605   public void addFromURL_actionPerformed(ActionEvent e)
1606   {
1607
1608   }
1609
1610   public void exportFeatures_actionPerformed(ActionEvent e)
1611   {
1612
1613   }
1614
1615   public void exportAnnotations_actionPerformed(ActionEvent e)
1616   {
1617
1618   }
1619
1620   protected void htmlMenuItem_actionPerformed(ActionEvent e)
1621   {
1622   }
1623
1624   protected void closeMenuItem_actionPerformed(boolean b)
1625   {
1626   }
1627
1628   protected void redoMenuItem_actionPerformed(ActionEvent e)
1629   {
1630   }
1631
1632   protected void undoMenuItem_actionPerformed(ActionEvent e)
1633   {
1634   }
1635
1636   protected void selectAllSequenceMenuItem_actionPerformed(ActionEvent e)
1637   {
1638   }
1639
1640   protected void deselectAllSequenceMenuItem_actionPerformed(ActionEvent e)
1641   {
1642   }
1643
1644   protected void invertSequenceMenuItem_actionPerformed(ActionEvent e)
1645   {
1646   }
1647
1648   protected void remove2LeftMenuItem_actionPerformed(ActionEvent e)
1649   {
1650   }
1651
1652   protected void remove2RightMenuItem_actionPerformed(ActionEvent e)
1653   {
1654   }
1655
1656   protected void removeGappedColumnMenuItem_actionPerformed(ActionEvent e)
1657   {
1658   }
1659
1660   protected void removeAllGapsMenuItem_actionPerformed(ActionEvent e)
1661   {
1662   }
1663
1664   protected void wrapMenuItem_actionPerformed(ActionEvent e)
1665   {
1666   }
1667
1668   protected void viewBoxesMenuItem_actionPerformed(ActionEvent e)
1669   {
1670   }
1671
1672   protected void viewTextMenuItem_actionPerformed(ActionEvent e)
1673   {
1674   }
1675
1676   protected void colourTextMenuItem_actionPerformed(ActionEvent e)
1677   {
1678   }
1679
1680   protected void annotationPanelMenuItem_actionPerformed(ActionEvent e)
1681   {
1682   }
1683
1684   protected void overviewMenuItem_actionPerformed(ActionEvent e)
1685   {
1686   }
1687
1688   protected void sortPairwiseMenuItem_actionPerformed(ActionEvent e)
1689   {
1690   }
1691
1692   protected void sortIDMenuItem_actionPerformed(ActionEvent e)
1693   {
1694   }
1695
1696   protected void sortGroupMenuItem_actionPerformed(ActionEvent e)
1697   {
1698   }
1699
1700   protected void removeRedundancyMenuItem_actionPerformed(ActionEvent e)
1701   {
1702   }
1703
1704   protected void pairwiseAlignmentMenuItem_actionPerformed(ActionEvent e)
1705   {
1706   }
1707
1708   protected void PCAMenuItem_actionPerformed(ActionEvent e)
1709   {
1710   }
1711
1712   protected void averageDistanceTreeMenuItem_actionPerformed(ActionEvent e)
1713   {
1714   }
1715
1716   protected void neighbourTreeMenuItem_actionPerformed(ActionEvent e)
1717   {
1718   }
1719
1720   protected void njTreeBlosumMenuItem_actionPerformed(ActionEvent e)
1721   {
1722   }
1723
1724   protected void avTreeBlosumMenuItem_actionPerformed(ActionEvent e)
1725   {
1726   }
1727
1728   protected void clustalColour_actionPerformed(ActionEvent e)
1729   {
1730   }
1731
1732   protected void zappoColour_actionPerformed(ActionEvent e)
1733   {
1734   }
1735
1736   protected void taylorColour_actionPerformed(ActionEvent e)
1737   {
1738   }
1739
1740   protected void hydrophobicityColour_actionPerformed(ActionEvent e)
1741   {
1742   }
1743
1744   protected void helixColour_actionPerformed(ActionEvent e)
1745   {
1746   }
1747
1748   protected void strandColour_actionPerformed(ActionEvent e)
1749   {
1750   }
1751
1752   protected void turnColour_actionPerformed(ActionEvent e)
1753   {
1754   }
1755
1756   protected void buriedColour_actionPerformed(ActionEvent e)
1757   {
1758   }
1759
1760   protected void userDefinedColour_actionPerformed(ActionEvent e)
1761   {
1762   }
1763
1764   protected void PIDColour_actionPerformed(ActionEvent e)
1765   {
1766   }
1767
1768   protected void BLOSUM62Colour_actionPerformed(ActionEvent e)
1769   {
1770   }
1771
1772   protected void noColourmenuItem_actionPerformed(ActionEvent e)
1773   {
1774   }
1775
1776   protected void conservationMenuItem_actionPerformed(ActionEvent e)
1777   {
1778   }
1779
1780   protected void printMenuItem_actionPerformed(ActionEvent e)
1781   {
1782   }
1783
1784   protected void renderGapsMenuItem_actionPerformed(ActionEvent e)
1785   {
1786   }
1787
1788   protected void findMenuItem_actionPerformed(ActionEvent e)
1789   {
1790   }
1791
1792   protected void abovePIDThreshold_actionPerformed(ActionEvent e)
1793   {
1794   }
1795
1796   public void showSeqFeatures_actionPerformed(ActionEvent actionEvent)
1797   {
1798   }
1799
1800   protected void nucleotideColour_actionPerformed(ActionEvent e)
1801   {
1802   }
1803
1804   protected void deleteGroups_actionPerformed(ActionEvent e)
1805   {
1806   }
1807
1808   protected void copy_actionPerformed(ActionEvent e)
1809   {
1810   }
1811
1812   protected void cut_actionPerformed(ActionEvent e)
1813   {
1814   }
1815
1816   protected void delete_actionPerformed(ActionEvent e)
1817   {
1818   }
1819
1820   protected void pasteNew_actionPerformed(ActionEvent e)
1821   {
1822   }
1823
1824   protected void pasteThis_actionPerformed(ActionEvent e)
1825   {
1826   }
1827
1828   protected void applyToAllGroups_actionPerformed(ActionEvent e)
1829   {
1830   }
1831
1832   public void createPNG(java.io.File f)
1833   {
1834   }
1835
1836   protected void font_actionPerformed(ActionEvent e)
1837   {
1838   }
1839
1840   protected void seqLimit_actionPerformed(ActionEvent e)
1841   {
1842   }
1843
1844   public void seqDBRef_actionPerformed(ActionEvent e)
1845   {
1846
1847   }
1848
1849   public void createEPS(java.io.File f)
1850   {
1851   }
1852
1853   protected void LoadtreeMenuItem_actionPerformed(ActionEvent e)
1854   {
1855   }
1856
1857   protected void jpred_actionPerformed(ActionEvent e)
1858   {
1859   }
1860
1861   protected void scaleAbove_actionPerformed(ActionEvent e)
1862   {
1863   }
1864
1865   protected void scaleLeft_actionPerformed(ActionEvent e)
1866   {
1867   }
1868
1869   protected void scaleRight_actionPerformed(ActionEvent e)
1870   {
1871   }
1872
1873   protected void modifyPID_actionPerformed(ActionEvent e)
1874   {
1875   }
1876
1877   protected void modifyConservation_actionPerformed(ActionEvent e)
1878   {
1879   }
1880
1881   protected void saveAs_actionPerformed(ActionEvent e)
1882   {
1883   }
1884
1885   protected void padGapsMenuitem_actionPerformed(ActionEvent e)
1886   {
1887   }
1888
1889   public void vamsasStore_actionPerformed(ActionEvent e)
1890   {
1891
1892   }
1893
1894   public void vamsasLoad_actionPerformed(ActionEvent e)
1895   {
1896
1897   }
1898
1899   public void showTranslation_actionPerformed(ActionEvent e)
1900   {
1901
1902   }
1903
1904   public void featureSettings_actionPerformed(ActionEvent e)
1905   {
1906
1907   }
1908
1909   public void fetchSequence_actionPerformed(ActionEvent e)
1910   {
1911
1912   }
1913
1914   public void smoothFont_actionPerformed(ActionEvent e)
1915   {
1916
1917   }
1918
1919   public void annotationColour_actionPerformed(ActionEvent e)
1920   {
1921
1922   }
1923
1924   public void associatedData_actionPerformed(ActionEvent e)
1925   {
1926
1927   }
1928
1929   public void autoCalculate_actionPerformed(ActionEvent e)
1930   {
1931
1932   }
1933
1934   public void showAllSeqs_actionPerformed(ActionEvent e)
1935   {
1936
1937   }
1938
1939   public void showAllColumns_actionPerformed(ActionEvent e)
1940   {
1941
1942   }
1943
1944   public void hideSelSequences_actionPerformed(ActionEvent e)
1945   {
1946
1947   }
1948
1949   public void hideSelColumns_actionPerformed(ActionEvent e)
1950   {
1951
1952   }
1953
1954   public void hiddenMarkers_actionPerformed(ActionEvent e)
1955   {
1956
1957   }
1958
1959   public void findPdbId_actionPerformed(ActionEvent e)
1960   {
1961
1962   }
1963
1964   public void enterPdbId_actionPerformed(ActionEvent e)
1965   {
1966
1967   }
1968
1969   public void pdbFile_actionPerformed(ActionEvent e)
1970   {
1971
1972   }
1973
1974   public void invertColSel_actionPerformed(ActionEvent e)
1975   {
1976
1977   }
1978
1979   public void tabSelectionChanged(int sel)
1980   {
1981
1982   }
1983
1984   public void tabbedPane_mousePressed(MouseEvent e)
1985   {
1986
1987   }
1988
1989   public void tabbedPane_focusGained(FocusEvent e)
1990   {
1991     requestFocus();
1992   }
1993
1994   public void save_actionPerformed(ActionEvent e)
1995   {
1996
1997   }
1998
1999   public void reload_actionPerformed(ActionEvent e)
2000   {
2001
2002   }
2003
2004   public void newView_actionPerformed(ActionEvent e)
2005   {
2006
2007   }
2008
2009   public void textColour_actionPerformed(ActionEvent e)
2010   {
2011
2012   }
2013
2014   public void idRightAlign_actionPerformed(ActionEvent e)
2015   {
2016
2017   }
2018
2019   public void expandViews_actionPerformed(ActionEvent e)
2020   {
2021
2022   }
2023
2024   public void gatherViews_actionPerformed(ActionEvent e)
2025   {
2026
2027   }
2028
2029   public void buildTreeMenu()
2030   {
2031
2032   }
2033
2034   public void pageSetup_actionPerformed(ActionEvent e)
2035   {
2036
2037   }
2038
2039   public void alignmentProperties()
2040   {
2041
2042   }
2043 }