Clover icon

Coverage Report

  1. Project Clover database Thu Dec 4 2025 14:43:25 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 190 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  487 toggle public GAlignFrame()
251    {
252  487 try
253    {
254  487 setFrameIcon(null);
255   
256    // for Web-page embedding using id=align-frame-div
257  487 setName(Platform.getAppID("alignment"));
258   
259  487 jbInit();
260  487 setJMenuBar(alignFrameMenuBar);
261   
262    // dynamically fill save as menu with available formats
263  487 for (String ff : FileFormats.getInstance().getWritableFormats(true))
264    {
265  5844 JMenuItem item = new JMenuItem(ff);
266   
267  5844 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  5844 outputTextboxMenu.add(item);
277    }
278    } catch (Exception e)
279    {
280  0 jalview.bin.Console.errPrintln(e.toString());
281    }
282   
283  487 if (Platform.allowMnemonics()) // was "not mac and not JS"
284    {
285  487 closeMenuItem.setMnemonic('C');
286  487 outputTextboxMenu.setMnemonic('T');
287  487 undoMenuItem.setMnemonic('Z');
288  487 redoMenuItem.setMnemonic('0');
289  487 copy.setMnemonic('C');
290  487 cut.setMnemonic('U');
291  487 pasteMenu.setMnemonic('P');
292  487 reload.setMnemonic('R');
293    }
294    }
295   
 
296  487 toggle private void jbInit() throws Exception
297    {
298  487 setFrameIcon(null);
299  487 initColourMenu();
300   
301   
302  487 JMenuItem saveAs = new JMenuItem(
303    MessageManager.getString("action.save_as"));
304  487 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  487 KeyStroke keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_S, Platform.SHORTCUT_KEY_MASK | InputEvent.SHIFT_DOWN_MASK,
316    false);
317  487 addMenuActionAndAccelerator(keyStroke, saveAs, al);
318   
319   
320  487 closeMenuItem.setText(MessageManager.getString("action.close"));
321  487 keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_W, Platform.SHORTCUT_KEY_MASK, false);
322  487 al = new ActionListener()
323    {
 
324  0 toggle @Override
325    public void actionPerformed(ActionEvent e)
326    {
327  0 closeMenuItem_actionPerformed(false);
328    }
329    };
330  487 addMenuActionAndAccelerator(keyStroke, closeMenuItem, al);
331   
332   
333  487 JMenu editMenu = new JMenu(MessageManager.getString("action.edit"));
334  487 JMenu viewMenu = new JMenu(MessageManager.getString("action.view"));
335  487 JMenu annotationsMenu = new JMenu(
336    MessageManager.getString("action.annotations"));
337  487 JMenu showMenu = new JMenu(MessageManager.getString("action.show"));
338  487 colourMenu.setText(MessageManager.getString("action.colour"));
339  487 JMenu calculateMenu = new JMenu(
340    MessageManager.getString("action.calculate"));
341  487 webService.setText(MessageManager.getString("action.web_service"));
342  487 initHMMERMenu();
343  487 JMenuItem selectAllSequenceMenuItem = new JMenuItem(
344    MessageManager.getString("action.select_all"));
345  487 keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_A,
346    Platform.SHORTCUT_KEY_MASK, false);
347  487 al = new ActionListener()
348    {
 
349  0 toggle @Override
350    public void actionPerformed(ActionEvent e)
351    {
352  0 selectAllSequenceMenuItem_actionPerformed(e);
353    }
354    };
355  487 addMenuActionAndAccelerator(keyStroke, selectAllSequenceMenuItem, al);
356   
357   
358  487 JMenuItem deselectAllSequenceMenuItem = new JMenuItem(
359    MessageManager.getString("action.deselect_all"));
360  487 keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_ESCAPE, 0, false);
361  487 al = new ActionListener()
362    {
 
363  0 toggle @Override
364    public void actionPerformed(ActionEvent e)
365    {
366  0 deselectAllSequenceMenuItem_actionPerformed(e);
367    }
368    };
369  487 addMenuActionAndAccelerator(keyStroke, deselectAllSequenceMenuItem, al);
370   
371   
372  487 JMenuItem invertSequenceMenuItem = new JMenuItem(
373    MessageManager.getString("action.invert_sequence_selection"));
374  487 keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_I,
375    Platform.SHORTCUT_KEY_MASK, false);
376  487 al = new ActionListener()
377    {
 
378  0 toggle @Override
379    public void actionPerformed(ActionEvent e)
380    {
381  0 invertSequenceMenuItem_actionPerformed(e);
382    }
383    };
384  487 addMenuActionAndAccelerator(keyStroke, invertSequenceMenuItem, al);
385   
386   
387  487 JMenuItem grpsFromSelection = new JMenuItem(
388    MessageManager.getString("action.make_groups_selection"));
389  487 grpsFromSelection.addActionListener(new ActionListener()
390    {
 
391  0 toggle @Override
392    public void actionPerformed(ActionEvent e)
393    {
394  0 makeGrpsFromSelection_actionPerformed(e);
395    }
396    });
397  487 JMenuItem expandAlignment = new JMenuItem(
398    MessageManager.getString("action.view_flanking_regions"));
399  487 expandAlignment.setToolTipText(
400    MessageManager.getString("label.view_flanking_regions"));
401  487 expandAlignment.addActionListener(new ActionListener()
402    {
 
403  0 toggle @Override
404    public void actionPerformed(ActionEvent e)
405    {
406  0 expand_newalign(e);
407    }
408    });
409  487 JMenuItem remove2LeftMenuItem = new JMenuItem(
410    MessageManager.getString("action.remove_left"));
411  487 keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_L,
412    Platform.SHORTCUT_KEY_MASK, false);
413  487 al = new ActionListener()
414    {
 
415  0 toggle @Override
416    public void actionPerformed(ActionEvent e)
417    {
418  0 remove2LeftMenuItem_actionPerformed(e);
419    }
420    };
421  487 addMenuActionAndAccelerator(keyStroke, remove2LeftMenuItem, al);
422   
423   
424  487 JMenuItem remove2RightMenuItem = new JMenuItem(
425    MessageManager.getString("action.remove_right"));
426  487 keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_R,
427    Platform.SHORTCUT_KEY_MASK, false);
428  487 al = new ActionListener()
429    {
 
430  0 toggle @Override
431    public void actionPerformed(ActionEvent e)
432    {
433  0 remove2RightMenuItem_actionPerformed(e);
434    }
435    };
436  487 addMenuActionAndAccelerator(keyStroke, remove2RightMenuItem, al);
437   
438   
439  487 JMenuItem removeGappedColumnMenuItem = new JMenuItem(
440    MessageManager.getString("action.remove_empty_columns"));
441  487 keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_E,
442    Platform.SHORTCUT_KEY_MASK, false);
443  487 al = new ActionListener()
444    {
 
445  0 toggle @Override
446    public void actionPerformed(ActionEvent e)
447    {
448  0 removeGappedColumnMenuItem_actionPerformed(e);
449    }
450    };
451  487 addMenuActionAndAccelerator(keyStroke, removeGappedColumnMenuItem, al);
452   
453   
454  487 JMenuItem removeAllGapsMenuItem = new JMenuItem(
455    MessageManager.getString("action.remove_all_gaps"));
456  487 keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_E,
457    Platform.SHORTCUT_KEY_MASK
458    | InputEvent.SHIFT_DOWN_MASK,
459    false);
460  487 al = new ActionListener()
461    {
 
462  0 toggle @Override
463    public void actionPerformed(ActionEvent e)
464    {
465  0 removeAllGapsMenuItem_actionPerformed(e);
466    }
467    };
468  487 addMenuActionAndAccelerator(keyStroke, removeAllGapsMenuItem, al);
469   
470   
471  487 JMenuItem justifyLeftMenuItem = new JMenuItem(
472    MessageManager.getString("action.left_justify"));
473  487 justifyLeftMenuItem.setToolTipText(
474    MessageManager.getString("tooltip.left_justify"));
475  487 justifyLeftMenuItem.addActionListener(new ActionListener()
476    {
 
477  0 toggle @Override
478    public void actionPerformed(ActionEvent e)
479    {
480  0 justifyLeftMenuItem_actionPerformed(e);
481    }
482    });
483  487 JMenuItem justifyRightMenuItem = new JMenuItem(
484    MessageManager.getString("action.right_justify"));
485  487 justifyRightMenuItem.setToolTipText(
486    MessageManager.getString("action.left_justify"));
487   
488  487 justifyRightMenuItem.addActionListener(new ActionListener()
489    {
 
490  0 toggle @Override
491    public void actionPerformed(ActionEvent e)
492    {
493  0 justifyRightMenuItem_actionPerformed(e);
494    }
495    });
496  487 viewBoxesMenuItem.setText(MessageManager.getString("action.boxes"));
497  487 viewBoxesMenuItem.setState(true);
498  487 viewBoxesMenuItem.addActionListener(new ActionListener()
499    {
 
500  0 toggle @Override
501    public void actionPerformed(ActionEvent e)
502    {
503  0 viewBoxesMenuItem_actionPerformed(e);
504    }
505    });
506  487 viewTextMenuItem.setText(MessageManager.getString("action.text"));
507  487 viewTextMenuItem.setState(true);
508  487 viewTextMenuItem.addActionListener(new ActionListener()
509    {
 
510  0 toggle @Override
511    public void actionPerformed(ActionEvent e)
512    {
513  0 viewTextMenuItem_actionPerformed(e);
514    }
515    });
516  487 showNonconservedMenuItem
517    .setText(MessageManager.getString("label.show_non_conserved"));
518  487 showNonconservedMenuItem.setState(false);
519  487 showNonconservedMenuItem.addActionListener(new ActionListener()
520    {
 
521  0 toggle @Override
522    public void actionPerformed(ActionEvent e)
523    {
524  0 showUnconservedMenuItem_actionPerformed(e);
525    }
526    });
527  487 JMenuItem sortPairwiseMenuItem = new JMenuItem(
528    MessageManager.getString("action.by_pairwise_id"));
529  487 sortPairwiseMenuItem.addActionListener(new ActionListener()
530    {
 
531  0 toggle @Override
532    public void actionPerformed(ActionEvent e)
533    {
534  0 sortPairwiseMenuItem_actionPerformed(e);
535    }
536    });
537  487 JMenuItem sortIDMenuItem = new JMenuItem(
538    MessageManager.getString("action.by_id"));
539  487 sortIDMenuItem.addActionListener(new ActionListener()
540    {
 
541  0 toggle @Override
542    public void actionPerformed(ActionEvent e)
543    {
544  0 sortIDMenuItem_actionPerformed(e);
545    }
546    });
547  487 JMenuItem sortDescriptionMenuItem = new JMenuItem(
548    MessageManager.getString("action.by_description"));
549  487 sortDescriptionMenuItem.addActionListener(new ActionListener()
550    {
 
551  0 toggle @Override
552    public void actionPerformed(ActionEvent e)
553    {
554  0 sortDescriptionMenuItem_actionPerformed(e);
555    }
556    });
557  487 JMenuItem sortLengthMenuItem = new JMenuItem(
558    MessageManager.getString("action.by_length"));
559  487 sortLengthMenuItem.addActionListener(new ActionListener()
560    {
 
561  0 toggle @Override
562    public void actionPerformed(ActionEvent e)
563    {
564  0 sortLengthMenuItem_actionPerformed(e);
565    }
566    });
567  487 JMenuItem sortGroupMenuItem = new JMenuItem(
568    MessageManager.getString("action.by_group"));
569  487 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  487 JMenuItem sortEValueMenuItem = new JMenuItem(
579    MessageManager.getString("action.by_evalue"));
580  487 sortEValueMenuItem.addActionListener(new ActionListener()
581    {
 
582  0 toggle @Override
583    public void actionPerformed(ActionEvent e)
584    {
585  0 sortEValueMenuItem_actionPerformed(e);
586    }
587    });
588  487 JMenuItem sortBitScoreMenuItem = new JMenuItem(
589    MessageManager.getString("action.by_bit_score"));
590  487 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  487 JMenuItem removeRedundancyMenuItem = new JMenuItem(
600    MessageManager.getString("action.remove_redundancy"));
601  487 keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_D,
602    Platform.SHORTCUT_KEY_MASK, false);
603  487 al = new ActionListener()
604    {
 
605  0 toggle @Override
606    public void actionPerformed(ActionEvent e)
607    {
608  0 removeRedundancyMenuItem_actionPerformed(e);
609    }
610    };
611  487 addMenuActionAndAccelerator(keyStroke, removeRedundancyMenuItem, al);
612   
613  487 JMenuItem filterByEValue = new JMenuItem(
614    MessageManager.getString("action.filter_by_evalue"));
615  487 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  487 JMenuItem filterByScore = new JMenuItem(
626    MessageManager.getString("action.filter_by_score"));
627  487 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  487 JMenuItem pairwiseAlignmentMenuItem = new JMenuItem(
638    MessageManager.getString("action.pairwise_alignment"));
639  487 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  487 this.getContentPane().setLayout(new BorderLayout());
650  487 alignFrameMenuBar.setFont(new java.awt.Font("Verdana", 0, 11));
651  487 statusBar.setBackground(Color.white);
652  487 statusBar.setFont(new java.awt.Font("Verdana", 0, 11));
653  487 statusBar.setBorder(BorderFactory.createLineBorder(Color.black));
654  487 statusBar.setText(MessageManager.getString("label.status_bar"));
655  487 outputTextboxMenu
656    .setText(MessageManager.getString("label.out_to_textbox"));
657   
658  487 annotationPanelMenuItem.setActionCommand("");
659  487 annotationPanelMenuItem
660    .setText(MessageManager.getString("label.show_annotations"));
661  487 annotationPanelMenuItem
662    .setState(Cache.getDefault("SHOW_ANNOTATIONS", true));
663  487 annotationPanelMenuItem.addActionListener(new ActionListener()
664    {
 
665  0 toggle @Override
666    public void actionPerformed(ActionEvent e)
667    {
668  0 annotationPanelMenuItem_actionPerformed(e);
669    }
670    });
671  487 showAllAlAnnotations.setText(
672    MessageManager.getString("label.show_all_al_annotations"));
673  487 final boolean isAnnotationPanelShown = annotationPanelMenuItem
674    .getState();
675  487 showAllAlAnnotations.setEnabled(isAnnotationPanelShown);
676  487 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  487 hideAllAlAnnotations.setText(
685    MessageManager.getString("label.hide_all_al_annotations"));
686  487 hideAllAlAnnotations.setEnabled(isAnnotationPanelShown);
687  487 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  487 showAllSeqAnnotations.setText(
696    MessageManager.getString("label.show_all_seq_annotations"));
697  487 showAllSeqAnnotations.setEnabled(isAnnotationPanelShown);
698  487 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  487 hideAllSeqAnnotations.setText(
707    MessageManager.getString("label.hide_all_seq_annotations"));
708  487 hideAllSeqAnnotations.setEnabled(isAnnotationPanelShown);
709  487 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  487 SequenceAnnotationOrder sortAnnotationsBy = SequenceAnnotationOrder
718    .valueOf(Cache.getDefault(Preferences.SORT_ANNOTATIONS,
719    SequenceAnnotationOrder.NONE.name()));
720  487 sortAnnBySequence = new JCheckBoxMenuItem(
721    MessageManager.getString("label.sort_annotations_by_sequence"));
722  487 sortAnnByLabel = new JCheckBoxMenuItem(
723    MessageManager.getString("label.sort_annotations_by_label"));
724  487 sortAnnotationByTreeMenu.setText(
725    MessageManager.getString("label.sort_annotations_by_tree"));
726   
727  487 sortAnnBySequence.setSelected(
728    sortAnnotationsBy == SequenceAnnotationOrder.SEQUENCE_AND_LABEL);
729  487 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  487 sortAnnByLabel.setSelected(
743    sortAnnotationsBy == SequenceAnnotationOrder.LABEL_AND_SEQUENCE);
744  487 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  487 showStrucProvider = new JCheckBoxMenuItem(
758    MessageManager.getString("label.show_structure_provider"));
759  487 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  487 colourTextMenuItem = new JCheckBoxMenuItem(
769    MessageManager.getString("label.colour_text"));
770  487 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  487 JMenuItem htmlMenuItem = new JMenuItem(
781    MessageManager.getString("label.html"));
782  487 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  487 JMenuItem createBioJS = new JMenuItem(
793    MessageManager.getString("label.biojs_html_export"));
794  487 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  487 JMenuItem overviewMenuItem = new JMenuItem(
805    MessageManager.getString("label.overview_window"));
806  487 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  487 undoMenuItem.setEnabled(false);
817  487 undoMenuItem.setText(MessageManager.getString("action.undo"));
818  487 keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_Z,
819    Platform.SHORTCUT_KEY_MASK, false);
820  487 al = new ActionListener()
821    {
 
822  0 toggle @Override
823    public void actionPerformed(ActionEvent e)
824    {
825  0 undoMenuItem_actionPerformed(e);
826    }
827    };
828  487 addMenuActionAndAccelerator(keyStroke, undoMenuItem, al);
829   
830   
831  487 redoMenuItem.setEnabled(false);
832  487 redoMenuItem.setText(MessageManager.getString("action.redo"));
833  487 keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_Y,
834    Platform.SHORTCUT_KEY_MASK, false);
835  487 al = new ActionListener()
836    {
 
837  0 toggle @Override
838    public void actionPerformed(ActionEvent e)
839    {
840  0 redoMenuItem_actionPerformed(e);
841    }
842    };
843  487 addMenuActionAndAccelerator(keyStroke, redoMenuItem, al);
844   
845   
846  487 wrapMenuItem.setText(MessageManager.getString("label.wrap"));
847  487 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  487 JMenuItem printMenuItem = new JMenuItem(
858    MessageManager.getString("action.print"));
859  487 keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_P,
860    Platform.SHORTCUT_KEY_MASK, false);
861  487 al = new ActionListener()
862    {
 
863  0 toggle @Override
864    public void actionPerformed(ActionEvent e)
865    {
866  0 printMenuItem_actionPerformed(e);
867    }
868    };
869  487 addMenuActionAndAccelerator(keyStroke, printMenuItem, al);
870   
871   
872  487 renderGapsMenuItem
873    .setText(MessageManager.getString("action.show_gaps"));
874  487 renderGapsMenuItem.setState(true);
875  487 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  487 JMenuItem findMenuItem = new JMenuItem(
886    MessageManager.getString("action.find"));
887  487 keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_F,
888    Platform.SHORTCUT_KEY_MASK, false);
889  487 findMenuItem.setToolTipText(JvSwingUtils.wrapTooltip(true,
890    MessageManager.getString("label.find_tip")));
891  487 al = new ActionListener()
892    {
 
893  0 toggle @Override
894    public void actionPerformed(ActionEvent e)
895    {
896  0 findMenuItem_actionPerformed(e);
897    }
898    };
899  487 addMenuActionAndAccelerator(keyStroke, findMenuItem, al);
900   
901  487 showSeqFeatures.setText(
902    MessageManager.getString("label.show_sequence_features"));
903  487 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  487 showDbRefsMenuitem
918    .setText(MessageManager.getString("label.show_database_refs"));
919  487 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  487 showNpFeatsMenuitem.setText(
932    MessageManager.getString("label.show_non_positional_features"));
933  487 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  487 showGroupConservation
946    .setText(MessageManager.getString("label.group_conservation"));
947  487 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  487 showSSConsensus.setText(MessageManager
960    .getString("label.show_secondary_structure_consensus"));
961  487 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  487 showGroupSSConsensus
973    .setText(MessageManager.getString("label.group_ss_consensus"));
974  487 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  487 showGroupConsensus
986    .setText(MessageManager.getString("label.group_consensus"));
987  487 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  487 showConsensusHistogram.setText(
1000    MessageManager.getString("label.show_consensus_histogram"));
1001  487 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  487 showSequenceLogo
1015    .setText(MessageManager.getString("label.show_consensus_logo"));
1016  487 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  487 normaliseSequenceLogo
1029    .setText(MessageManager.getString("label.norm_consensus_logo"));
1030  487 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  487 applyAutoAnnotationSettings
1043    .setText(MessageManager.getString("label.apply_all_groups"));
1044  487 applyAutoAnnotationSettings.setState(false);
1045  487 applyAutoAnnotationSettings.setVisible(true);
1046  487 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  487 ButtonGroup buttonGroup = new ButtonGroup();
1057  487 final JRadioButtonMenuItem showAutoFirst = new JRadioButtonMenuItem(
1058    MessageManager.getString("label.show_first"));
1059  487 final JRadioButtonMenuItem showAutoLast = new JRadioButtonMenuItem(
1060    MessageManager.getString("label.show_last"));
1061  487 buttonGroup.add(showAutoFirst);
1062  487 buttonGroup.add(showAutoLast);
1063  487 final boolean autoFirst = Cache
1064    .getDefault(Preferences.SHOW_AUTOCALC_ABOVE, false);
1065  487 showAutoFirst.setSelected(autoFirst);
1066  487 setShowAutoCalculatedAbove(autoFirst);
1067  487 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  487 showAutoLast.setSelected(!showAutoFirst.isSelected());
1077  487 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  487 JMenuItem deleteGroups = new JMenuItem(
1089    MessageManager.getString("action.undefine_groups"));
1090  487 keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_U,
1091    Platform.SHORTCUT_KEY_MASK, false);
1092  487 al = new ActionListener()
1093    {
 
1094  0 toggle @Override
1095    public void actionPerformed(ActionEvent e)
1096    {
1097  0 deleteGroups_actionPerformed(e);
1098    }
1099    };
1100  487 addMenuActionAndAccelerator(keyStroke, deleteGroups, al);
1101   
1102   
1103  487 JMenuItem annotationColumn = new JMenuItem(
1104    MessageManager.getString("action.select_by_annotation"));
1105  487 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  487 JMenuItem createGroup = new JMenuItem(
1116    MessageManager.getString("action.create_group"));
1117  487 keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_G,
1118    Platform.SHORTCUT_KEY_MASK, false);
1119  487 al = new ActionListener()
1120    {
 
1121  0 toggle @Override
1122    public void actionPerformed(ActionEvent e)
1123    {
1124  0 createGroup_actionPerformed(e);
1125    }
1126    };
1127  487 addMenuActionAndAccelerator(keyStroke, createGroup, al);
1128   
1129   
1130  487 JMenuItem unGroup = new JMenuItem(
1131    MessageManager.getString("action.remove_group"));
1132  487 keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_G,
1133    Platform.SHORTCUT_KEY_MASK
1134    | InputEvent.SHIFT_DOWN_MASK,
1135    false);
1136  487 al = new ActionListener()
1137    {
 
1138  0 toggle @Override
1139    public void actionPerformed(ActionEvent e)
1140    {
1141  0 unGroup_actionPerformed(e);
1142    }
1143    };
1144  487 addMenuActionAndAccelerator(keyStroke, unGroup, al);
1145   
1146   
1147  487 copy.setText(MessageManager.getString("action.copy"));
1148  487 keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_C,
1149    Platform.SHORTCUT_KEY_MASK, false);
1150   
1151  487 al = new ActionListener()
1152    {
 
1153  0 toggle @Override
1154    public void actionPerformed(ActionEvent e)
1155    {
1156  0 copy_actionPerformed();
1157    }
1158    };
1159  487 addMenuActionAndAccelerator(keyStroke, copy, al);
1160   
1161   
1162  487 cut.setText(MessageManager.getString("action.cut"));
1163  487 keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_X,
1164    Platform.SHORTCUT_KEY_MASK, false);
1165  487 al = new ActionListener()
1166    {
 
1167  0 toggle @Override
1168    public void actionPerformed(ActionEvent e)
1169    {
1170  0 cut_actionPerformed();
1171    }
1172    };
1173  487 addMenuActionAndAccelerator(keyStroke, cut, al);
1174   
1175   
1176  487 JMenuItem delete = new JMenuItem(
1177    MessageManager.getString("action.delete"));
1178  487 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  487 pasteMenu.setText(MessageManager.getString("action.paste"));
1189  487 JMenuItem pasteNew = new JMenuItem(
1190    MessageManager.getString("label.to_new_alignment"));
1191  487 keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_V,
1192    Platform.SHORTCUT_KEY_MASK
1193    | InputEvent.SHIFT_DOWN_MASK,
1194    false);
1195  487 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  487 addMenuActionAndAccelerator(keyStroke, pasteNew, al);
1211   
1212   
1213  487 JMenuItem pasteThis = new JMenuItem(
1214    MessageManager.getString("label.to_this_alignment"));
1215  487 keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_V,
1216    Platform.SHORTCUT_KEY_MASK, false);
1217  487 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  487 addMenuActionAndAccelerator(keyStroke, pasteThis, al);
1233   
1234   
1235  487 JMenuItem createPNG = new JMenuItem("PNG");
1236  487 createPNG.addActionListener(new ActionListener()
1237    {
 
1238  0 toggle @Override
1239    public void actionPerformed(ActionEvent e)
1240    {
1241  0 createPNG_actionPerformed(e);
1242    }
1243    });
1244  487 createPNG.setActionCommand(
1245    MessageManager.getString("label.save_png_image"));
1246   
1247  487 JMenuItem font = new JMenuItem(MessageManager.getString("action.font"));
1248  487 font.addActionListener(new ActionListener()
1249    {
 
1250  0 toggle @Override
1251    public void actionPerformed(ActionEvent e)
1252    {
1253  0 font_actionPerformed(e);
1254    }
1255    });
1256  487 seqLimits.setText(
1257    MessageManager.getString("label.show_sequence_limits"));
1258  487 seqLimits.setState(Cache.getDefault("SHOW_JVSUFFIX", true));
1259  487 seqLimits.addActionListener(new ActionListener()
1260    {
 
1261  0 toggle @Override
1262    public void actionPerformed(ActionEvent e)
1263    {
1264  0 seqLimit_actionPerformed(e);
1265    }
1266    });
1267  487 JMenuItem epsFile = new JMenuItem("EPS");
1268  487 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  487 JMenuItem createSVG = new JMenuItem("SVG");
1279  487 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  487 JMenuItem loadTreeMenuItem = new JMenuItem(
1290    MessageManager.getString("label.load_associated_tree"));
1291  487 loadTreeMenuItem.setActionCommand(
1292    MessageManager.getString("label.load_tree_for_sequence_set"));
1293  487 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  487 scaleAbove.setVisible(false);
1304  487 scaleAbove.setText(MessageManager.getString("action.scale_above"));
1305  487 scaleAbove.addActionListener(new ActionListener()
1306    {
 
1307  0 toggle @Override
1308    public void actionPerformed(ActionEvent e)
1309    {
1310  0 scaleAbove_actionPerformed(e);
1311    }
1312    });
1313  487 scaleLeft.setVisible(false);
1314  487 scaleLeft.setSelected(true);
1315  487 scaleLeft.setText(MessageManager.getString("action.scale_left"));
1316  487 scaleLeft.addActionListener(new ActionListener()
1317    {
 
1318  0 toggle @Override
1319    public void actionPerformed(ActionEvent e)
1320    {
1321  0 scaleLeft_actionPerformed(e);
1322    }
1323    });
1324  487 scaleRight.setVisible(false);
1325  487 scaleRight.setSelected(true);
1326  487 scaleRight.setText(MessageManager.getString("action.scale_right"));
1327  487 scaleRight.addActionListener(new ActionListener()
1328    {
 
1329  0 toggle @Override
1330    public void actionPerformed(ActionEvent e)
1331    {
1332  0 scaleRight_actionPerformed(e);
1333    }
1334    });
1335  487 centreColumnLabelsMenuItem.setVisible(true);
1336  487 centreColumnLabelsMenuItem.setState(false);
1337  487 centreColumnLabelsMenuItem.setText(
1338    MessageManager.getString("label.centre_column_labels"));
1339  487 centreColumnLabelsMenuItem.addActionListener(new ActionListener()
1340    {
 
1341  0 toggle @Override
1342    public void actionPerformed(ActionEvent e)
1343    {
1344  0 centreColumnLabels_actionPerformed(e);
1345    }
1346    });
1347  487 followHighlightMenuItem.setVisible(true);
1348  487 followHighlightMenuItem.setState(true);
1349  487 followHighlightMenuItem
1350    .setText(MessageManager.getString("label.automatic_scrolling"));
1351  487 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  487 sortByTreeMenu
1366    .setText(MessageManager.getString("action.by_tree_order"));
1367  487 sort.setText(MessageManager.getString("action.sort"));
1368  487 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  487 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  487 sortByAnnotScore
1405    .setText(MessageManager.getString("label.sort_by_score"));
1406  487 sort.add(sortByAnnotScore);
1407  487 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  487 sortByAnnotScore.setVisible(false);
1430   
1431  487 calculateTree
1432    .setText(MessageManager.getString("action.calculate_tree_pca"));
1433   
1434  487 padGapsMenuitem.setText(MessageManager.getString("label.pad_gaps"));
1435  487 padGapsMenuitem.setState(Cache.getDefault("PAD_GAPS", false));
1436  487 padGapsMenuitem.addActionListener(new ActionListener()
1437    {
 
1438  0 toggle @Override
1439    public void actionPerformed(ActionEvent e)
1440    {
1441  0 padGapsMenuitem_actionPerformed(e);
1442    }
1443    });
1444  487 JMenuItem vamsasStore = new JMenuItem(
1445    MessageManager.getString("label.vamsas_store"));
1446  487 vamsasStore.setVisible(false);
1447  487 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  487 showTranslation
1460    .setText(MessageManager.getString("label.translate_cDNA"));
1461  487 boolean first = true;
1462  487 for (final GeneticCodeI table : GeneticCodes.getInstance()
1463    .getCodeTables())
1464    {
1465  12175 JMenuItem item = new JMenuItem(table.getId() + " " + table.getName());
1466  12175 showTranslation.add(item);
1467  12175 item.addActionListener(new ActionListener()
1468    {
 
1469  0 toggle @Override
1470    public void actionPerformed(ActionEvent e)
1471    {
1472  0 showTranslation_actionPerformed(table);
1473    }
1474    });
1475  12175 if (first)
1476    {
1477  487 showTranslation.addSeparator();
1478    }
1479  12175 first = false;
1480    }
1481   
1482  487 showReverse.setText(MessageManager.getString("label.reverse"));
1483  487 showReverse.addActionListener(new ActionListener()
1484    {
 
1485  0 toggle @Override
1486    public void actionPerformed(ActionEvent e)
1487    {
1488  0 showReverse_actionPerformed(false);
1489    }
1490    });
1491  487 showReverseComplement
1492    .setText(MessageManager.getString("label.reverse_complement"));
1493  487 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  487 JMenuItem extractScores = new JMenuItem(
1504    MessageManager.getString("label.extract_scores"));
1505  487 extractScores.addActionListener(new ActionListener()
1506    {
 
1507  0 toggle @Override
1508    public void actionPerformed(ActionEvent e)
1509    {
1510  0 extractScores_actionPerformed(e);
1511    }
1512    });
1513  487 extractScores.setVisible(true);
1514    // JBPNote: TODO: make gui for regex based score extraction
1515   
1516   
1517    // for show products actions see AlignFrame.canShowProducts
1518  487 showProducts.setText(MessageManager.getString("label.get_cross_refs"));
1519   
1520   
1521  487 runGroovy.setText(MessageManager.getString("label.run_groovy"));
1522  487 runGroovy.setToolTipText(
1523    MessageManager.getString("label.run_groovy_tip"));
1524  487 runGroovy.addActionListener(new ActionListener()
1525    {
 
1526  0 toggle @Override
1527    public void actionPerformed(ActionEvent e)
1528    {
1529  0 runGroovy_actionPerformed();
1530    }
1531    });
1532   
1533  487 openFeatureSettings = new JMenuItem(
1534    MessageManager.getString("action.feature_settings"));
1535  487 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  487 JMenuItem fetchSequence = new JMenuItem(
1548    MessageManager.getString("label.fetch_sequences"));
1549  487 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  487 JMenuItem associatedData = new JMenuItem(
1560    MessageManager.getString("label.load_features_annotations"));
1561  487 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  487 loadVcf = new JMenuItem(
1577    MessageManager.getString("label.load_vcf_file"));
1578  487 loadVcf.setToolTipText(MessageManager.getString("label.load_vcf"));
1579  487 loadVcf.addActionListener(new ActionListener()
1580    {
 
1581  0 toggle @Override
1582    public void actionPerformed(ActionEvent e)
1583    {
1584  0 loadVcf_actionPerformed();
1585    }
1586    });
1587  487 autoCalculate.setText(
1588    MessageManager.getString("label.autocalculate_consensus"));
1589  487 autoCalculate.setState(Cache.getDefault("AUTO_CALC_CONSENSUS", true));
1590  487 autoCalculate.addActionListener(new ActionListener()
1591    {
 
1592  0 toggle @Override
1593    public void actionPerformed(ActionEvent e)
1594    {
1595  0 autoCalculate_actionPerformed(e);
1596    }
1597    });
1598  487 sortByTree.setText(
1599    MessageManager.getString("label.sort_alignment_new_tree"));
1600  487 sortByTree.setToolTipText("<html>" + MessageManager.getString(
1601    "label.enable_automatically_sort_alignment_when_open_new_tree"));
1602  487 sortByTree.setState(Cache.getDefault("SORT_BY_TREE", false));
1603  487 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  487 listenToViewSelections.setText(
1613    MessageManager.getString("label.listen_for_selections"));
1614  487 listenToViewSelections
1615    .setToolTipText("<html>" + MessageManager.getString(
1616    "label.selections_mirror_selections_made_same_sequences_other_views"));
1617  487 listenToViewSelections.setState(false);
1618  487 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  487 JMenu addSequenceMenu = new JMenu(
1629    MessageManager.getString("label.add_sequences"));
1630  487 JMenuItem addFromFile = new JMenuItem(
1631    MessageManager.getString("label.from_file"));
1632  487 addFromFile.addActionListener(new ActionListener()
1633    {
 
1634  0 toggle @Override
1635    public void actionPerformed(ActionEvent e)
1636    {
1637  0 addFromFile_actionPerformed(e);
1638    }
1639    });
1640  487 JMenuItem addFromText = new JMenuItem(
1641    MessageManager.getString("label.from_textbox"));
1642  487 addFromText.addActionListener(new ActionListener()
1643    {
 
1644  0 toggle @Override
1645    public void actionPerformed(ActionEvent e)
1646    {
1647  0 addFromText_actionPerformed(e);
1648    }
1649    });
1650  487 JMenuItem addFromURL = new JMenuItem(
1651    MessageManager.getString("label.from_url"));
1652  487 addFromURL.addActionListener(new ActionListener()
1653    {
 
1654  0 toggle @Override
1655    public void actionPerformed(ActionEvent e)
1656    {
1657  0 addFromURL_actionPerformed(e);
1658    }
1659    });
1660  487 JMenuItem exportFeatures = new JMenuItem(
1661    MessageManager.getString("label.export_features"));
1662  487 exportFeatures.addActionListener(new ActionListener()
1663    {
 
1664  0 toggle @Override
1665    public void actionPerformed(ActionEvent e)
1666    {
1667  0 exportFeatures_actionPerformed(e);
1668    }
1669    });
1670  487 JMenuItem exportAnnotations = new JMenuItem(
1671    MessageManager.getString("label.export_annotations"));
1672  487 exportAnnotations.addActionListener(new ActionListener()
1673    {
 
1674  0 toggle @Override
1675    public void actionPerformed(ActionEvent e)
1676    {
1677  0 exportAnnotations_actionPerformed(e);
1678    }
1679    });
1680  487 statusPanel.setLayout(new GridLayout());
1681  487 JMenuItem showAllSeqs = new JMenuItem(
1682    MessageManager.getString("label.all_sequences"));
1683  487 showAllSeqs.setToolTipText(
1684    MessageManager.getString("label.toggle_sequence_visibility"));
1685  487 showAllSeqs.addActionListener(new ActionListener()
1686    {
 
1687  0 toggle @Override
1688    public void actionPerformed(ActionEvent e)
1689    {
1690  0 showAllSeqs_actionPerformed(e);
1691    }
1692    });
1693  487 JMenuItem showAllColumns = new JMenuItem(
1694    MessageManager.getString("label.all_columns"));
1695  487 showAllColumns.setToolTipText(
1696    MessageManager.getString("label.toggle_columns_visibility"));
1697  487 showAllColumns.addActionListener(new ActionListener()
1698    {
 
1699  0 toggle @Override
1700    public void actionPerformed(ActionEvent e)
1701    {
1702  0 showAllColumns_actionPerformed(e);
1703    }
1704    });
1705  487 JMenu hideMenu = new JMenu(MessageManager.getString("action.hide"));
1706  487 JMenuItem hideSelSequences = new JMenuItem(
1707    MessageManager.getString("label.selected_sequences"));
1708  487 hideSelSequences.setToolTipText(
1709    MessageManager.getString("label.toggle_sequence_visibility"));
1710  487 hideSelSequences.addActionListener(new ActionListener()
1711    {
 
1712  0 toggle @Override
1713    public void actionPerformed(ActionEvent e)
1714    {
1715  0 hideSelSequences_actionPerformed(e);
1716    }
1717    });
1718  487 JMenuItem hideSelColumns = new JMenuItem(
1719    MessageManager.getString("label.selected_columns"));
1720  487 hideSelColumns.setToolTipText(
1721    MessageManager.getString("label.toggle_columns_visibility"));
1722  487 hideSelColumns.addActionListener(new ActionListener()
1723    {
 
1724  0 toggle @Override
1725    public void actionPerformed(ActionEvent e)
1726    {
1727  0 hideSelColumns_actionPerformed(e);
1728    }
1729    });
1730  487 JMenuItem hideAllSelection = new JMenuItem(
1731    MessageManager.getString("label.selected_region"));
1732  487 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  487 JMenuItem hideAllButSelection = new JMenuItem(
1742    MessageManager.getString("label.all_but_selected_region"));
1743  487 hideAllButSelection.addActionListener(new ActionListener()
1744    {
 
1745  0 toggle @Override
1746    public void actionPerformed(ActionEvent e)
1747    {
1748  0 hideAllButSelection_actionPerformed(e);
1749    }
1750    });
1751  487 JMenuItem showAllhidden = new JMenuItem(
1752    MessageManager.getString("label.all_sequences_columns"));
1753  487 showAllhidden.setToolTipText(MessageManager
1754    .getString("label.toggles_visibility_hidden_selected_regions"));
1755  487 showAllhidden.addActionListener(new ActionListener()
1756    {
 
1757  0 toggle @Override
1758    public void actionPerformed(ActionEvent e)
1759    {
1760  0 showAllhidden_actionPerformed(e);
1761    }
1762    });
1763  487 hiddenMarkers.setText(
1764    MessageManager.getString("action.show_hidden_markers"));
1765  487 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  487 JMenuItem invertColSel = new JMenuItem(
1776    MessageManager.getString("action.invert_column_selection"));
1777  487 keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_I,
1778    Platform.SHORTCUT_KEY_MASK
1779    | InputEvent.ALT_DOWN_MASK,
1780    false);
1781  487 al = new ActionListener()
1782    {
 
1783  0 toggle @Override
1784    public void actionPerformed(ActionEvent e)
1785    {
1786  0 invertColSel_actionPerformed(e);
1787    }
1788    };
1789  487 addMenuActionAndAccelerator(keyStroke, invertColSel, al);
1790   
1791   
1792  487 showComplementMenuItem.setVisible(false);
1793  487 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  487 tabbedPane.addChangeListener(new javax.swing.event.ChangeListener()
1804    {
 
1805  157 toggle @Override
1806    public void stateChanged(ChangeEvent evt)
1807    {
1808  157 JTabbedPane pane = (JTabbedPane) evt.getSource();
1809  157 int sel = pane.getSelectedIndex();
1810  157 tabSelectionChanged(sel);
1811    }
1812    });
1813  487 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  487 tabbedPane.addFocusListener(new FocusAdapter()
1835    {
 
1836  53 toggle @Override
1837    public void focusGained(FocusEvent e)
1838    {
1839  53 tabbedPane_focusGained(e);
1840    }
1841    });
1842   
1843   
1844  487 JMenuItem save = new JMenuItem(MessageManager.getString("action.save"));
1845  487 keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_S,
1846    Platform.SHORTCUT_KEY_MASK, false);
1847  487 al = new ActionListener()
1848    {
 
1849  0 toggle @Override
1850    public void actionPerformed(ActionEvent e)
1851    {
1852  0 save_actionPerformed(e);
1853    }
1854    };
1855  487 addMenuActionAndAccelerator(keyStroke, save, al);
1856   
1857   
1858  487 reload.setEnabled(false);
1859  487 reload.setText(MessageManager.getString("action.reload"));
1860  487 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  487 JMenuItem newView = new JMenuItem(
1871    MessageManager.getString("action.new_view"));
1872  487 keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_T,
1873    Platform.SHORTCUT_KEY_MASK, false);
1874  487 al = new ActionListener()
1875    {
 
1876  0 toggle @Override
1877    public void actionPerformed(ActionEvent e)
1878    {
1879  0 newView_actionPerformed(e);
1880    }
1881    };
1882  487 addMenuActionAndAccelerator(keyStroke, newView, al);
1883   
1884   
1885  487 tabbedPane.setToolTipText("<html><i>"
1886    + MessageManager.getString("label.rename_tab_eXpand_reGroup")
1887    + "</i></html>");
1888   
1889   
1890  487 formatMenu.setText(MessageManager.getString("action.format"));
1891  487 JMenu selectMenu = new JMenu(MessageManager.getString("action.select"));
1892   
1893  487 idRightAlign.setText(
1894    MessageManager.getString("label.right_align_sequence_id"));
1895  487 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  487 gatherViews.setEnabled(false);
1906  487 gatherViews.setText(MessageManager.getString("action.gather_views"));
1907  487 keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_G, 0, false);
1908  487 al = new ActionListener()
1909    {
 
1910  0 toggle @Override
1911    public void actionPerformed(ActionEvent e)
1912    {
1913  0 gatherViews_actionPerformed(e);
1914    }
1915    };
1916  487 addMenuActionAndAccelerator(keyStroke, gatherViews, al);
1917   
1918   
1919  487 expandViews.setEnabled(false);
1920  487 expandViews.setText(MessageManager.getString("action.expand_views"));
1921  487 keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_X, 0, false);
1922  487 al = new ActionListener()
1923    {
 
1924  0 toggle @Override
1925    public void actionPerformed(ActionEvent e)
1926    {
1927  0 expandViews_actionPerformed(e);
1928    }
1929    };
1930  487 addMenuActionAndAccelerator(keyStroke, expandViews, al);
1931   
1932   
1933  487 JMenuItem pageSetup = new JMenuItem(
1934    MessageManager.getString("action.page_setup"));
1935  487 pageSetup.addActionListener(new ActionListener()
1936    {
 
1937  0 toggle @Override
1938    public void actionPerformed(ActionEvent e)
1939    {
1940  0 pageSetup_actionPerformed(e);
1941    }
1942    });
1943  487 JMenuItem alignmentProperties = new JMenuItem(
1944    MessageManager.getString("label.alignment_props"));
1945  487 alignmentProperties.addActionListener(new ActionListener()
1946    {
 
1947  0 toggle @Override
1948    public void actionPerformed(ActionEvent actionEvent)
1949    {
1950  0 alignmentProperties();
1951    }
1952    });
1953  487 JMenuItem selectHighlighted = new JMenuItem(
1954    MessageManager.getString("action.select_highlighted_columns"));
1955  487 selectHighlighted.setToolTipText(JvSwingUtils.wrapTooltip(true,
1956    MessageManager.getString("tooltip.select_highlighted_columns")));
1957  487 al = new ActionListener()
1958    {
 
1959  0 toggle @Override
1960    public void actionPerformed(ActionEvent actionEvent)
1961    {
1962  0 selectHighlightedColumns_actionPerformed(actionEvent);
1963    }
1964    };
1965  487 JMenuItem Filter = new JMenuItem(
1966    MessageManager.getString("action.select_highlighted_columns"));
1967  487 selectHighlighted.setToolTipText(
1968    MessageManager.getString("tooltip.select_highlighted_columns"));
1969  487 al = new ActionListener()
1970    {
 
1971  0 toggle @Override
1972    public void actionPerformed(ActionEvent actionEvent)
1973    {
1974  0 selectHighlightedColumns_actionPerformed(actionEvent);
1975    }
1976    };
1977  487 selectHighlighted.addActionListener(al);
1978   
1979  487 copyHighlighted = new JMenuItem(
1980    MessageManager.getString("action.copy_highlighted_regions"));
1981  487 keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_C,
1982    Platform.SHORTCUT_KEY_MASK+KeyEvent.SHIFT_DOWN_MASK,
1983    false);
1984  487 copyHighlighted.setToolTipText(
1985    MessageManager.getString("tooltip.copy_highlighted_regions"));
1986  487 al = new ActionListener()
1987    {
 
1988  0 toggle @Override
1989    public void actionPerformed(ActionEvent actionEvent)
1990    {
1991  0 copyHighlightedColumns_actionPerformed(actionEvent);
1992    }
1993    };
1994  487 addMenuActionAndAccelerator(keyStroke, copyHighlighted, al);
1995  487 copyHighlighted.addActionListener(al);
1996   
1997  487 ButtonGroup ssButtonGroup = new ButtonGroup();
1998   
1999  487 JMenu tooltipSettingsMenu = new JMenu(
2000    MessageManager.getString("label.sequence_id_tooltip"));
2001  487 JMenu autoAnnMenu = new JMenu(
2002    MessageManager.getString("label.autocalculated_annotation"));
2003   
2004  487 JMenu showSS = new JMenu(
2005    MessageManager.getString("label.show_secondary_structure"));
2006   
2007  487 JRadioButtonMenuItem radioButtonAllSS = new JRadioButtonMenuItem(
2008    MessageManager.getString("option.ss_providers_all"));
2009  487 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  487 ssButtonGroup.add(radioButtonAllSS);
2028  487 showSS.add(radioButtonAllSS);
2029   
2030  487 JRadioButtonMenuItem radioButtonNoneSS = new JRadioButtonMenuItem(
2031    MessageManager.getString("option.ss_providers_none"));
2032  487 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  487 ssButtonGroup.add(radioButtonNoneSS);
2052  487 showSS.add(radioButtonNoneSS);
2053  487 showSS.addSeparator();
2054   
2055  487 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  487 JMenu exportImageMenu = new JMenu(
2082    MessageManager.getString("label.export_image"));
2083  487 JMenu fileMenu = new JMenu(MessageManager.getString("action.file"));
2084  487 alignFrameMenuBar.add(fileMenu);
2085  487 alignFrameMenuBar.add(editMenu);
2086  487 alignFrameMenuBar.add(selectMenu);
2087  487 alignFrameMenuBar.add(viewMenu);
2088  487 alignFrameMenuBar.add(annotationsMenu);
2089  487 alignFrameMenuBar.add(formatMenu);
2090  487 alignFrameMenuBar.add(colourMenu);
2091  487 alignFrameMenuBar.add(calculateMenu);
2092  487 alignFrameMenuBar.add(webService);
2093  487 if (!Platform.isJS())
2094    {
2095  487 alignFrameMenuBar.add(hmmerMenu);
2096    }
2097   
2098   
2099  487 fileMenu.add(fetchSequence);
2100  487 fileMenu.add(addSequenceMenu);
2101  487 fileMenu.add(reload);
2102  487 fileMenu.addSeparator();
2103  487 fileMenu.add(vamsasStore);
2104  487 fileMenu.add(save);
2105  487 fileMenu.add(saveAs);
2106  487 fileMenu.add(outputTextboxMenu);
2107  487 fileMenu.add(pageSetup);
2108  487 fileMenu.add(printMenuItem);
2109  487 fileMenu.addSeparator();
2110  487 fileMenu.add(exportImageMenu);
2111  487 fileMenu.add(exportFeatures);
2112  487 fileMenu.add(exportAnnotations);
2113  487 fileMenu.add(loadTreeMenuItem);
2114  487 fileMenu.add(associatedData);
2115  487 if (!Platform.isJS())
2116    {
2117  487 fileMenu.add(loadVcf);
2118    }
2119  487 fileMenu.addSeparator();
2120  487 fileMenu.add(closeMenuItem);
2121   
2122   
2123  487 pasteMenu.add(pasteNew);
2124  487 pasteMenu.add(pasteThis);
2125  487 editMenu.add(undoMenuItem);
2126  487 editMenu.add(redoMenuItem);
2127  487 editMenu.add(cut);
2128  487 editMenu.add(copy);
2129  487 editMenu.add(copyHighlighted);
2130  487 editMenu.add(pasteMenu);
2131  487 editMenu.add(delete);
2132  487 editMenu.addSeparator();
2133  487 editMenu.add(remove2LeftMenuItem);
2134  487 editMenu.add(remove2RightMenuItem);
2135  487 editMenu.add(removeGappedColumnMenuItem);
2136  487 editMenu.add(removeAllGapsMenuItem);
2137  487 editMenu.add(removeRedundancyMenuItem);
2138  487 editMenu.addSeparator();
2139   
2140  487 editMenu.add(justifyLeftMenuItem);
2141  487 editMenu.add(justifyRightMenuItem);
2142   
2143  487 editMenu.addSeparator();
2144  487 editMenu.add(padGapsMenuitem);
2145   
2146  487 editMenu.addSeparator();
2147  487 editMenu.add(filterByEValue);
2148  487 editMenu.add(filterByScore);
2149   
2150  487 showMenu.add(showAllColumns);
2151  487 showMenu.add(showAllSeqs);
2152  487 showMenu.add(showAllhidden);
2153  487 hideMenu.add(hideSelColumns);
2154  487 hideMenu.add(hideSelSequences);
2155  487 hideMenu.add(hideAllSelection);
2156  487 hideMenu.add(hideAllButSelection);
2157  487 viewMenu.add(newView);
2158  487 viewMenu.add(expandViews);
2159  487 viewMenu.add(gatherViews);
2160  487 viewMenu.addSeparator();
2161  487 viewMenu.add(showMenu);
2162  487 viewMenu.add(hideMenu);
2163  487 viewMenu.add(showComplementMenuItem);
2164  487 viewMenu.addSeparator();
2165  487 viewMenu.add(followHighlightMenuItem);
2166  487 viewMenu.addSeparator();
2167  487 viewMenu.add(showSeqFeatures);
2168    // viewMenu.add(showSeqFeaturesHeight);
2169  487 viewMenu.add(openFeatureSettings);
2170  487 tooltipSettingsMenu.add(showDbRefsMenuitem);
2171  487 tooltipSettingsMenu.add(showNpFeatsMenuitem);
2172  487 viewMenu.add(tooltipSettingsMenu);
2173  487 viewMenu.addSeparator();
2174  487 viewMenu.add(alignmentProperties);
2175  487 viewMenu.addSeparator();
2176  487 viewMenu.add(overviewMenuItem);
2177   
2178   
2179  487 annotationsMenu.add(annotationPanelMenuItem);
2180  487 annotationsMenu.addSeparator();
2181  487 annotationsMenu.add(showAllAlAnnotations);
2182  487 annotationsMenu.add(hideAllAlAnnotations);
2183  487 annotationsMenu.addSeparator();
2184  487 annotationsMenu.add(showAllSeqAnnotations);
2185  487 annotationsMenu.add(hideAllSeqAnnotations);
2186  487 annotationsMenu.add(sortAnnBySequence);
2187  487 annotationsMenu.add(sortAnnByLabel);
2188  487 annotationsMenu.add(sortAnnotationByTreeMenu);
2189  487 annotationsMenu.addSeparator();
2190  487 annotationsMenu.add(showSS);
2191  487 annotationsMenu.add(showStrucProvider);
2192  487 annotationsMenu.addSeparator();
2193  487 autoAnnMenu.add(showAutoFirst);
2194  487 autoAnnMenu.add(showAutoLast);
2195  487 autoAnnMenu.addSeparator();
2196  487 autoAnnMenu.add(applyAutoAnnotationSettings);
2197  487 autoAnnMenu.add(showConsensusHistogram);
2198  487 autoAnnMenu.add(showSequenceLogo);
2199  487 autoAnnMenu.add(normaliseSequenceLogo);
2200    // autoAnnMenu.add(showSSConsensus);
2201  487 autoAnnMenu.addSeparator();
2202  487 autoAnnMenu.add(showGroupConservation);
2203  487 autoAnnMenu.add(showGroupConsensus);
2204  487 autoAnnMenu.add(showGroupSSConsensus);
2205  487 annotationsMenu.add(autoAnnMenu);
2206   
2207  487 sort.add(sortIDMenuItem);
2208  487 sort.add(sortDescriptionMenuItem);
2209  487 sort.add(sortLengthMenuItem);
2210  487 sort.add(sortGroupMenuItem);
2211  487 sort.add(sortPairwiseMenuItem);
2212  487 sort.add(sortEValueMenuItem);
2213  487 sort.add(sortBitScoreMenuItem);
2214  487 sort.add(sortByTreeMenu);
2215  487 calculateMenu.add(sort);
2216  487 calculateMenu.add(calculateTree);
2217  487 calculateMenu.addSeparator();
2218  487 calculateMenu.add(pairwiseAlignmentMenuItem);
2219  487 calculateMenu.addSeparator();
2220  487 calculateMenu.add(showTranslation);
2221  487 calculateMenu.add(showReverse);
2222  487 calculateMenu.add(showReverseComplement);
2223  487 calculateMenu.add(showProducts);
2224  487 calculateMenu.add(autoCalculate);
2225  487 calculateMenu.add(sortByTree);
2226  487 calculateMenu.addSeparator();
2227  487 calculateMenu.add(expandAlignment);
2228  487 calculateMenu.add(extractScores);
2229  487 if (!Platform.isJS())
2230    {
2231  487 calculateMenu.addSeparator();
2232  487 calculateMenu.add(runGroovy);
2233    }
2234   
2235  487 webServiceNoServices = new JMenuItem(
2236    MessageManager.getString("label.no_services"));
2237  487 webService.add(webServiceNoServices);
2238  487 if (!Platform.isJS())
2239    {
2240  487 exportImageMenu.add(htmlMenuItem);
2241    }
2242  487 exportImageMenu.add(epsFile);
2243  487 exportImageMenu.add(createPNG);
2244  487 if (!Platform.isJS())
2245    {
2246  487 exportImageMenu.add(createBioJS);
2247  487 exportImageMenu.add(createSVG);
2248    }
2249  487 addSequenceMenu.add(addFromFile);
2250  487 addSequenceMenu.add(addFromText);
2251  487 addSequenceMenu.add(addFromURL);
2252  487 this.getContentPane().add(statusPanel, java.awt.BorderLayout.SOUTH);
2253  487 statusPanel.add(statusBar, null);
2254  487 this.getContentPane().add(tabbedPane, java.awt.BorderLayout.CENTER);
2255   
2256   
2257  487 formatMenu.add(font);
2258  487 formatMenu.addSeparator();
2259  487 formatMenu.add(wrapMenuItem);
2260  487 formatMenu.add(scaleAbove);
2261  487 formatMenu.add(scaleLeft);
2262  487 formatMenu.add(scaleRight);
2263  487 formatMenu.add(seqLimits);
2264  487 formatMenu.add(idRightAlign);
2265  487 formatMenu.add(hiddenMarkers);
2266  487 formatMenu.add(viewBoxesMenuItem);
2267  487 formatMenu.add(viewTextMenuItem);
2268  487 formatMenu.add(colourTextMenuItem);
2269  487 formatMenu.add(renderGapsMenuItem);
2270  487 formatMenu.add(centreColumnLabelsMenuItem);
2271  487 formatMenu.add(showNonconservedMenuItem);
2272  487 selectMenu.add(findMenuItem);
2273  487 selectMenu.addSeparator();
2274  487 selectMenu.add(selectAllSequenceMenuItem);
2275  487 selectMenu.add(deselectAllSequenceMenuItem);
2276  487 selectMenu.add(invertSequenceMenuItem);
2277  487 selectMenu.add(invertColSel);
2278  487 selectMenu.add(createGroup);
2279  487 selectMenu.add(unGroup);
2280  487 selectMenu.add(grpsFromSelection);
2281  487 selectMenu.add(deleteGroups);
2282  487 selectMenu.add(annotationColumn);
2283  487 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  487 toggle protected void initHMMERMenu()
2330    {
2331    /*
2332    * hmmbuild
2333    */
2334  487 JMenu hmmBuild = new JMenu(MessageManager.getString("label.hmmbuild"));
2335  487 JMenuItem hmmBuildSettings = new JMenuItem(
2336    MessageManager.getString("label.edit_settings_and_run"));
2337  487 hmmBuildSettings.addActionListener(new ActionListener()
2338    {
 
2339  0 toggle @Override
2340    public void actionPerformed(ActionEvent e)
2341    {
2342  0 hmmBuild_actionPerformed(false);
2343    }
2344    });
2345  487 JMenuItem hmmBuildRun = new JMenuItem(MessageManager.formatMessage(
2346    "label.action_with_default_settings", "hmmbuild"));
2347  487 hmmBuildRun.addActionListener(new ActionListener()
2348    {
 
2349  0 toggle @Override
2350    public void actionPerformed(ActionEvent e)
2351    {
2352  0 hmmBuild_actionPerformed(true);
2353    }
2354    });
2355  487 hmmBuild.add(hmmBuildRun);
2356  487 hmmBuild.add(hmmBuildSettings);
2357   
2358    /*
2359    * hmmalign
2360    */
2361  487 JMenu hmmAlign = new JMenu(MessageManager.getString("label.hmmalign"));
2362  487 JMenuItem hmmAlignRun = new JMenuItem(MessageManager.formatMessage(
2363    "label.action_with_default_settings", "hmmalign"));
2364  487 hmmAlignRun.addActionListener(new ActionListener()
2365    {
 
2366  0 toggle @Override
2367    public void actionPerformed(ActionEvent e)
2368    {
2369  0 hmmAlign_actionPerformed(true);
2370    }
2371    });
2372  487 JMenuItem hmmAlignSettings = new JMenuItem(
2373    MessageManager.getString("label.edit_settings_and_run"));
2374  487 hmmAlignSettings.addActionListener(new ActionListener()
2375    {
 
2376  0 toggle @Override
2377    public void actionPerformed(ActionEvent e)
2378    {
2379  0 hmmAlign_actionPerformed(false);
2380    }
2381    });
2382  487 hmmAlign.add(hmmAlignRun);
2383  487 hmmAlign.add(hmmAlignSettings);
2384   
2385    /*
2386    * hmmsearch
2387    */
2388  487 JMenu hmmSearch = new JMenu(
2389    MessageManager.getString("label.hmmsearch"));
2390  487 JMenuItem hmmSearchSettings = new JMenuItem(
2391    MessageManager.getString("label.edit_settings_and_run"));
2392  487 hmmSearchSettings.addActionListener(new ActionListener()
2393    {
 
2394  0 toggle @Override
2395    public void actionPerformed(ActionEvent e)
2396    {
2397  0 hmmSearch_actionPerformed(false);
2398    }
2399    });
2400  487 JMenuItem hmmSearchRun = new JMenuItem(MessageManager.formatMessage(
2401    "label.action_with_default_settings", "hmmsearch"));
2402  487 hmmSearchRun.addActionListener(new ActionListener()
2403    {
 
2404  0 toggle @Override
2405    public void actionPerformed(ActionEvent e)
2406    {
2407  0 hmmSearch_actionPerformed(true);
2408    }
2409    });
2410  487 JMenuItem addDatabase = new JMenuItem(
2411    MessageManager.getString("label.add_database"));
2412  487 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  487 hmmSearch.add(hmmSearchRun);
2427  487 hmmSearch.add(hmmSearchSettings);
2428    // hmmSearch.add(addDatabase);
2429   
2430    /*
2431    * jackhmmer
2432    */
2433  487 JMenu jackhmmer = new JMenu(
2434    MessageManager.getString("label.jackhmmer"));
2435  487 JMenuItem jackhmmerSettings = new JMenuItem(
2436    MessageManager.getString("label.edit_settings_and_run"));
2437  487 jackhmmerSettings.addActionListener(new ActionListener()
2438    {
 
2439  0 toggle @Override
2440    public void actionPerformed(ActionEvent e)
2441    {
2442  0 jackhmmer_actionPerformed(false);
2443    }
2444    });
2445  487 JMenuItem jackhmmerRun = new JMenuItem(MessageManager.formatMessage(
2446    "label.action_with_default_settings", "jackhmmer"));
2447  487 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  487 jackhmmer.add(jackhmmerRun);
2475  487 jackhmmer.add(jackhmmerSettings);
2476    // hmmSearch.add(addDatabase);
2477   
2478    /*
2479    * top level menu
2480    */
2481  487 hmmerMenu.setText(MessageManager.getString("action.hmmer"));
2482  487 hmmerMenu.setEnabled(HmmerCommand.isHmmerAvailable());
2483  487 hmmerMenu.add(hmmBuild);
2484  487 hmmerMenu.add(hmmAlign);
2485  487 hmmerMenu.add(hmmSearch);
2486  487 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  487 toggle protected void initColourMenu()
2503    {
2504  487 applyToAllGroups = new JCheckBoxMenuItem(
2505    MessageManager.getString("label.apply_colour_to_all_groups"));
2506  487 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  487 textColour = new JMenuItem(
2516    MessageManager.getString("label.text_colour"));
2517  487 textColour.addActionListener(new ActionListener()
2518    {
 
2519  0 toggle @Override
2520    public void actionPerformed(ActionEvent e)
2521    {
2522  0 textColour_actionPerformed();
2523    }
2524    });
2525   
2526  487 conservationMenuItem = new JCheckBoxMenuItem(
2527    MessageManager.getString("action.by_conservation"));
2528  487 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  487 byConsensusSecondaryStructureMenuItem = new JCheckBoxMenuItem(
2539    MessageManager.getString(
2540    "action.by_secondary_structure_conservation"));
2541  487 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  487 abovePIDThreshold = new JCheckBoxMenuItem(
2553    MessageManager.getString("label.above_identity_threshold"));
2554  487 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  487 modifyPID = new JMenuItem(
2563    MessageManager.getString("label.modify_identity_threshold"));
2564  487 modifyPID.addActionListener(new ActionListener()
2565    {
 
2566  0 toggle @Override
2567    public void actionPerformed(ActionEvent e)
2568    {
2569  0 modifyPID_actionPerformed();
2570    }
2571    });
2572  487 modifyConservation = new JMenuItem(MessageManager
2573    .getString("label.modify_conservation_threshold"));
2574  487 modifyConservation.addActionListener(new ActionListener()
2575    {
 
2576  0 toggle @Override
2577    public void actionPerformed(ActionEvent e)
2578    {
2579  0 modifyConservation_actionPerformed();
2580    }
2581    });
2582   
2583  487 modifyConsensusSecondaryStructureThreshold = new JMenuItem(
2584    MessageManager.getString(
2585    "label.modify_secondary_structure_conservation_threshold"));
2586  487 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  487 annotationColour = new JRadioButtonMenuItem(
2597    MessageManager.getString("action.by_annotation"));
2598  487 annotationColour.setName(ResidueColourScheme.ANNOTATION_COLOUR);
2599  487 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  13149 toggle protected void addMenuActionAndAccelerator(KeyStroke keyStroke,
2644    JMenuItem menuItem, ActionListener actionListener)
2645    {
2646  13149 menuItem.setAccelerator(keyStroke);
2647  13149 accelerators.put(keyStroke, menuItem);
2648  13149 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  53 toggle public void tabbedPane_focusGained(FocusEvent e)
3238    {
3239  53 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  487 toggle protected boolean isShowAutoCalculatedAbove()
3299    {
3300  487 return showAutoCalculatedAbove;
3301    }
3302   
 
3303  487 toggle protected void setShowAutoCalculatedAbove(boolean showAutoCalculatedAbove)
3304    {
3305  487 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  33 toggle public JPanel getStatusPanel()
3336    {
3337  33 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    }