33d35656c8773f3afe6845b19792117f81cffba3
[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     editMenu.add(justifyLeftMenuItem);
1556     editMenu.add(justifyRightMenuItem);
1557     editMenu.addSeparator();
1558     editMenu.add(padGapsMenuitem);
1559     viewMenu.add(newView);
1560     viewMenu.add(expandViews);
1561     viewMenu.add(gatherViews);
1562     viewMenu.addSeparator();
1563     viewMenu.add(jMenu3);
1564     viewMenu.add(hideMenu);
1565     viewMenu.addSeparator();
1566     viewMenu.add(followHighlightMenuItem);
1567     viewMenu.add(annotationPanelMenuItem);
1568     viewMenu.addSeparator();
1569     viewMenu.add(showSeqFeatures);
1570     viewMenu.add(showSeqFeaturesHeight);
1571    
1572     viewMenu.add(featureSettings);
1573     tooltipSettingsMenu.add(showDbRefsMenuitem);
1574     tooltipSettingsMenu.add(showNpFeatsMenuitem);
1575     viewMenu.add(tooltipSettingsMenu);
1576     viewMenu.addSeparator();
1577     viewMenu.add(alignmentProperties);
1578     viewMenu.addSeparator();
1579     viewMenu.add(overviewMenuItem);
1580     colourMenu.add(applyToAllGroups);
1581     colourMenu.add(textColour);
1582     colourMenu.addSeparator();
1583     colourMenu.add(noColourmenuItem);
1584     colourMenu.add(clustalColour);
1585     colourMenu.add(BLOSUM62Colour);
1586     colourMenu.add(PIDColour);
1587     colourMenu.add(zappoColour);
1588     colourMenu.add(taylorColour);
1589     colourMenu.add(hydrophobicityColour);
1590     colourMenu.add(helixColour);
1591     colourMenu.add(strandColour);
1592     colourMenu.add(turnColour);
1593     colourMenu.add(buriedColour);
1594     colourMenu.add(nucleotideColour);
1595     colourMenu.add(userDefinedColour);
1596     colourMenu.addSeparator();
1597     colourMenu.add(conservationMenuItem);
1598     colourMenu.add(modifyConservation);
1599     colourMenu.add(abovePIDThreshold);
1600     colourMenu.add(modifyPID);
1601     colourMenu.add(annotationColour);
1602     calculateMenu.add(sort);
1603     calculateMenu.add(calculateTree);
1604     calculateMenu.addSeparator();
1605     calculateMenu.add(pairwiseAlignmentMenuItem);
1606     calculateMenu.add(PCAMenuItem);
1607     calculateMenu.addSeparator();
1608     calculateMenu.add(showTranslation);
1609     calculateMenu.add(showProducts);
1610     calculateMenu.add(autoCalculate);
1611     calculateMenu.addSeparator();
1612     calculateMenu.add(extractScores);
1613     webServiceNoServices = new JMenuItem("<No Services>");
1614     webService.add(webServiceNoServices);
1615     pasteMenu.add(pasteNew);
1616     pasteMenu.add(pasteThis);
1617     sort.add(sortIDMenuItem);
1618     sort.add(sortLengthMenuItem);
1619     sort.add(sortGroupMenuItem);
1620     sort.add(sortPairwiseMenuItem);
1621     sort.add(sortByTreeMenu);
1622     calculateTree.add(averageDistanceTreeMenuItem);
1623     calculateTree.add(neighbourTreeMenuItem);
1624     calculateTree.add(avDistanceTreeBlosumMenuItem);
1625     calculateTree.add(njTreeBlosumMenuItem);
1626     jMenu2.add(htmlMenuItem);
1627     jMenu2.add(epsFile);
1628     jMenu2.add(createPNG);
1629     addSequenceMenu.add(addFromFile);
1630     addSequenceMenu.add(addFromText);
1631     addSequenceMenu.add(addFromURL);
1632     this.getContentPane().add(statusPanel, java.awt.BorderLayout.SOUTH);
1633     statusPanel.add(statusBar, null);
1634     this.getContentPane().add(tabbedPane, java.awt.BorderLayout.CENTER);
1635     jMenu3.add(showAllColumns);
1636     jMenu3.add(showAllSeqs);
1637     hideMenu.add(hideSelColumns);
1638     hideMenu.add(hideSelSequences);
1639     formatMenu.add(font);
1640     formatMenu.addSeparator();
1641     formatMenu.add(wrapMenuItem);
1642     formatMenu.add(scaleAbove);
1643     formatMenu.add(scaleLeft);
1644     formatMenu.add(scaleRight);
1645     formatMenu.add(seqLimits);
1646     formatMenu.add(idRightAlign);
1647     formatMenu.add(hiddenMarkers);
1648     formatMenu.add(viewBoxesMenuItem);
1649     formatMenu.add(viewTextMenuItem);
1650     formatMenu.add(colourTextMenuItem);
1651     formatMenu.add(renderGapsMenuItem);
1652     formatMenu.add(centreColumnLabelsMenuItem);
1653     selectMenu.add(findMenuItem);
1654     selectMenu.addSeparator();
1655     selectMenu.add(selectAllSequenceMenuItem);
1656     selectMenu.add(deselectAllSequenceMenuItem);
1657     selectMenu.add(invertSequenceMenuItem);
1658     selectMenu.add(invertColSel);
1659     selectMenu.add(deleteGroups);
1660   }
1661
1662   protected void showSeqFeaturesHeight_actionPerformed(
1663           ActionEvent actionEvent)
1664   {
1665     // TODO Auto-generated method stub
1666     
1667   }
1668
1669   protected void justifyRightMenuItem_actionPerformed(ActionEvent e)
1670   {
1671     // TODO Auto-generated method stub
1672     
1673   }
1674
1675   protected void justifyLeftMenuItem_actionPerformed(ActionEvent e)
1676   {
1677     // TODO Auto-generated method stub
1678     
1679   }
1680
1681   protected void followHighlight_actionPerformed()
1682   {
1683     // TODO Auto-generated method stub
1684     
1685   }
1686
1687   protected void showNpFeats_actionPerformed(ActionEvent e)
1688   {
1689     // TODO Auto-generated method stub
1690     
1691   }
1692
1693   protected void showDbRefs_actionPerformed(ActionEvent e)
1694   {
1695     // TODO Auto-generated method stub
1696     
1697   }
1698
1699   protected void centreColumnLabels_actionPerformed(ActionEvent e)
1700   {
1701   }
1702
1703   protected void showProducts_actionPerformed(ActionEvent e)
1704   {
1705   }
1706
1707   protected void buildSortByAnnotationScoresMenu()
1708   {
1709   }
1710
1711   protected void extractScores_actionPerformed(ActionEvent e)
1712   {
1713   }
1714
1715   protected void outputText_actionPerformed(ActionEvent e)
1716   {
1717   }
1718
1719   public void addFromFile_actionPerformed(ActionEvent e)
1720   {
1721
1722   }
1723
1724   public void addFromText_actionPerformed(ActionEvent e)
1725   {
1726
1727   }
1728
1729   public void addFromURL_actionPerformed(ActionEvent e)
1730   {
1731
1732   }
1733
1734   public void exportFeatures_actionPerformed(ActionEvent e)
1735   {
1736
1737   }
1738
1739   public void exportAnnotations_actionPerformed(ActionEvent e)
1740   {
1741
1742   }
1743
1744   protected void htmlMenuItem_actionPerformed(ActionEvent e)
1745   {
1746   }
1747
1748   protected void closeMenuItem_actionPerformed(boolean b)
1749   {
1750   }
1751
1752   protected void redoMenuItem_actionPerformed(ActionEvent e)
1753   {
1754   }
1755
1756   protected void undoMenuItem_actionPerformed(ActionEvent e)
1757   {
1758   }
1759
1760   protected void selectAllSequenceMenuItem_actionPerformed(ActionEvent e)
1761   {
1762   }
1763
1764   protected void deselectAllSequenceMenuItem_actionPerformed(ActionEvent e)
1765   {
1766   }
1767
1768   protected void invertSequenceMenuItem_actionPerformed(ActionEvent e)
1769   {
1770   }
1771
1772   protected void remove2LeftMenuItem_actionPerformed(ActionEvent e)
1773   {
1774   }
1775
1776   protected void remove2RightMenuItem_actionPerformed(ActionEvent e)
1777   {
1778   }
1779
1780   protected void removeGappedColumnMenuItem_actionPerformed(ActionEvent e)
1781   {
1782   }
1783
1784   protected void removeAllGapsMenuItem_actionPerformed(ActionEvent e)
1785   {
1786   }
1787
1788   protected void wrapMenuItem_actionPerformed(ActionEvent e)
1789   {
1790   }
1791
1792   protected void viewBoxesMenuItem_actionPerformed(ActionEvent e)
1793   {
1794   }
1795
1796   protected void viewTextMenuItem_actionPerformed(ActionEvent e)
1797   {
1798   }
1799
1800   protected void colourTextMenuItem_actionPerformed(ActionEvent e)
1801   {
1802   }
1803
1804   protected void annotationPanelMenuItem_actionPerformed(ActionEvent e)
1805   {
1806   }
1807
1808   protected void overviewMenuItem_actionPerformed(ActionEvent e)
1809   {
1810   }
1811
1812   protected void sortPairwiseMenuItem_actionPerformed(ActionEvent e)
1813   {
1814   }
1815
1816   protected void sortIDMenuItem_actionPerformed(ActionEvent e)
1817   {
1818   }
1819
1820   protected void sortLengthMenuItem_actionPerformed(ActionEvent e)
1821   {
1822   }
1823
1824   protected void sortGroupMenuItem_actionPerformed(ActionEvent e)
1825   {
1826   }
1827
1828   protected void removeRedundancyMenuItem_actionPerformed(ActionEvent e)
1829   {
1830   }
1831
1832   protected void pairwiseAlignmentMenuItem_actionPerformed(ActionEvent e)
1833   {
1834   }
1835
1836   protected void PCAMenuItem_actionPerformed(ActionEvent e)
1837   {
1838   }
1839
1840   protected void averageDistanceTreeMenuItem_actionPerformed(ActionEvent e)
1841   {
1842   }
1843
1844   protected void neighbourTreeMenuItem_actionPerformed(ActionEvent e)
1845   {
1846   }
1847
1848   protected void njTreeBlosumMenuItem_actionPerformed(ActionEvent e)
1849   {
1850   }
1851
1852   protected void avTreeBlosumMenuItem_actionPerformed(ActionEvent e)
1853   {
1854   }
1855
1856   protected void clustalColour_actionPerformed(ActionEvent e)
1857   {
1858   }
1859
1860   protected void zappoColour_actionPerformed(ActionEvent e)
1861   {
1862   }
1863
1864   protected void taylorColour_actionPerformed(ActionEvent e)
1865   {
1866   }
1867
1868   protected void hydrophobicityColour_actionPerformed(ActionEvent e)
1869   {
1870   }
1871
1872   protected void helixColour_actionPerformed(ActionEvent e)
1873   {
1874   }
1875
1876   protected void strandColour_actionPerformed(ActionEvent e)
1877   {
1878   }
1879
1880   protected void turnColour_actionPerformed(ActionEvent e)
1881   {
1882   }
1883
1884   protected void buriedColour_actionPerformed(ActionEvent e)
1885   {
1886   }
1887
1888   protected void userDefinedColour_actionPerformed(ActionEvent e)
1889   {
1890   }
1891
1892   protected void PIDColour_actionPerformed(ActionEvent e)
1893   {
1894   }
1895
1896   protected void BLOSUM62Colour_actionPerformed(ActionEvent e)
1897   {
1898   }
1899
1900   protected void noColourmenuItem_actionPerformed(ActionEvent e)
1901   {
1902   }
1903
1904   protected void conservationMenuItem_actionPerformed(ActionEvent e)
1905   {
1906   }
1907
1908   protected void printMenuItem_actionPerformed(ActionEvent e)
1909   {
1910   }
1911
1912   protected void renderGapsMenuItem_actionPerformed(ActionEvent e)
1913   {
1914   }
1915
1916   protected void findMenuItem_actionPerformed(ActionEvent e)
1917   {
1918   }
1919
1920   protected void abovePIDThreshold_actionPerformed(ActionEvent e)
1921   {
1922   }
1923
1924   public void showSeqFeatures_actionPerformed(ActionEvent actionEvent)
1925   {
1926   }
1927
1928   protected void nucleotideColour_actionPerformed(ActionEvent e)
1929   {
1930   }
1931
1932   protected void deleteGroups_actionPerformed(ActionEvent e)
1933   {
1934   }
1935
1936   protected void copy_actionPerformed(ActionEvent e)
1937   {
1938   }
1939
1940   protected void cut_actionPerformed(ActionEvent e)
1941   {
1942   }
1943
1944   protected void delete_actionPerformed(ActionEvent e)
1945   {
1946   }
1947
1948   protected void pasteNew_actionPerformed(ActionEvent e)
1949   {
1950   }
1951
1952   protected void pasteThis_actionPerformed(ActionEvent e)
1953   {
1954   }
1955
1956   protected void applyToAllGroups_actionPerformed(ActionEvent e)
1957   {
1958   }
1959
1960   public void createPNG(java.io.File f)
1961   {
1962   }
1963
1964   protected void font_actionPerformed(ActionEvent e)
1965   {
1966   }
1967
1968   protected void seqLimit_actionPerformed(ActionEvent e)
1969   {
1970   }
1971
1972   public void seqDBRef_actionPerformed(ActionEvent e)
1973   {
1974
1975   }
1976
1977   public void createEPS(java.io.File f)
1978   {
1979   }
1980
1981   protected void LoadtreeMenuItem_actionPerformed(ActionEvent e)
1982   {
1983   }
1984
1985   protected void jpred_actionPerformed(ActionEvent e)
1986   {
1987   }
1988
1989   protected void scaleAbove_actionPerformed(ActionEvent e)
1990   {
1991   }
1992
1993   protected void scaleLeft_actionPerformed(ActionEvent e)
1994   {
1995   }
1996
1997   protected void scaleRight_actionPerformed(ActionEvent e)
1998   {
1999   }
2000
2001   protected void modifyPID_actionPerformed(ActionEvent e)
2002   {
2003   }
2004
2005   protected void modifyConservation_actionPerformed(ActionEvent e)
2006   {
2007   }
2008
2009   protected void saveAs_actionPerformed(ActionEvent e)
2010   {
2011   }
2012
2013   protected void padGapsMenuitem_actionPerformed(ActionEvent e)
2014   {
2015   }
2016
2017   public void vamsasStore_actionPerformed(ActionEvent e)
2018   {
2019
2020   }
2021
2022   public void vamsasLoad_actionPerformed(ActionEvent e)
2023   {
2024
2025   }
2026
2027   public void showTranslation_actionPerformed(ActionEvent e)
2028   {
2029
2030   }
2031
2032   public void featureSettings_actionPerformed(ActionEvent e)
2033   {
2034
2035   }
2036
2037   public void fetchSequence_actionPerformed(ActionEvent e)
2038   {
2039
2040   }
2041
2042   public void smoothFont_actionPerformed(ActionEvent e)
2043   {
2044
2045   }
2046
2047   public void annotationColour_actionPerformed(ActionEvent e)
2048   {
2049
2050   }
2051
2052   public void associatedData_actionPerformed(ActionEvent e)
2053   {
2054
2055   }
2056
2057   public void autoCalculate_actionPerformed(ActionEvent e)
2058   {
2059
2060   }
2061
2062   public void showAllSeqs_actionPerformed(ActionEvent e)
2063   {
2064
2065   }
2066
2067   public void showAllColumns_actionPerformed(ActionEvent e)
2068   {
2069
2070   }
2071
2072   public void hideSelSequences_actionPerformed(ActionEvent e)
2073   {
2074
2075   }
2076
2077   public void hideSelColumns_actionPerformed(ActionEvent e)
2078   {
2079
2080   }
2081
2082   public void hiddenMarkers_actionPerformed(ActionEvent e)
2083   {
2084
2085   }
2086
2087   public void findPdbId_actionPerformed(ActionEvent e)
2088   {
2089
2090   }
2091
2092   public void enterPdbId_actionPerformed(ActionEvent e)
2093   {
2094
2095   }
2096
2097   public void pdbFile_actionPerformed(ActionEvent e)
2098   {
2099
2100   }
2101
2102   public void invertColSel_actionPerformed(ActionEvent e)
2103   {
2104
2105   }
2106
2107   public void tabSelectionChanged(int sel)
2108   {
2109
2110   }
2111
2112   public void tabbedPane_mousePressed(MouseEvent e)
2113   {
2114
2115   }
2116
2117   public void tabbedPane_focusGained(FocusEvent e)
2118   {
2119     requestFocus();
2120   }
2121
2122   public void save_actionPerformed(ActionEvent e)
2123   {
2124
2125   }
2126
2127   public void reload_actionPerformed(ActionEvent e)
2128   {
2129
2130   }
2131
2132   public void newView_actionPerformed(ActionEvent e)
2133   {
2134
2135   }
2136
2137   public void textColour_actionPerformed(ActionEvent e)
2138   {
2139
2140   }
2141
2142   public void idRightAlign_actionPerformed(ActionEvent e)
2143   {
2144
2145   }
2146
2147   public void expandViews_actionPerformed(ActionEvent e)
2148   {
2149
2150   }
2151
2152   public void gatherViews_actionPerformed(ActionEvent e)
2153   {
2154
2155   }
2156
2157   public void buildTreeMenu()
2158   {
2159
2160   }
2161
2162   public void pageSetup_actionPerformed(ActionEvent e)
2163   {
2164
2165   }
2166
2167   public void alignmentProperties()
2168   {
2169
2170   }
2171 }