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