Clover icon

Coverage Report

  1. Project Clover database Thu Feb 19 2026 11:15:34 GMT
  2. Package jalview.jbgui

File GAlignFrame.java

 

Coverage histogram

../../img/srcFileCovDistChart6.png
37% of files have more coverage

Code metrics

28
857
315
1
3,391
2,653
334
0.39
2.72
315
1.06

Classes

Class Line # Actions
GAlignFrame 73 857 334
0.5841666558.4%
 

Contributing tests

This file is covered by 191 tests. .

Source view

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