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