X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fjbgui%2FGAlignFrame.java;h=6aaba84b7596d7424cf15feaec4c3b7326879715;hb=a1984b1c8c273ed33c7ce9283039f4027dcae2de;hp=599cba801165d8ed60600957456c1b395d20a1dd;hpb=4ea0a263a0a750dcf570a9d47a9a1152bae9d88c;p=jalview.git diff --git a/src/jalview/jbgui/GAlignFrame.java b/src/jalview/jbgui/GAlignFrame.java index 599cba8..6aaba84 100755 --- a/src/jalview/jbgui/GAlignFrame.java +++ b/src/jalview/jbgui/GAlignFrame.java @@ -1,6 +1,6 @@ /* - * Jalview - A Sequence Alignment Editor and Viewer (Version 2.8.2) - * Copyright (C) 2014 The Jalview Authors + * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$) + * Copyright (C) $$Year-Rel$$ The Jalview Authors * * This file is part of Jalview. * @@ -21,22 +21,29 @@ package jalview.jbgui; import jalview.analysis.AnnotationSorter.SequenceAnnotationOrder; +import jalview.analysis.GeneticCodeI; +import jalview.analysis.GeneticCodes; +import jalview.api.SplitContainerI; import jalview.bin.Cache; import jalview.gui.JvSwingUtils; import jalview.gui.Preferences; -import jalview.schemes.ColourSchemeProperty; +import jalview.io.FileFormats; +import jalview.schemes.ResidueColourScheme; import jalview.util.MessageManager; +import jalview.util.Platform; import java.awt.BorderLayout; import java.awt.Color; import java.awt.GridLayout; -import java.awt.Toolkit; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.FocusAdapter; import java.awt.event.FocusEvent; +import java.awt.event.KeyEvent; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; +import java.util.HashMap; +import java.util.Map; import javax.swing.BorderFactory; import javax.swing.ButtonGroup; @@ -46,199 +53,90 @@ import javax.swing.JLabel; import javax.swing.JMenu; import javax.swing.JMenuBar; import javax.swing.JMenuItem; -import javax.swing.JOptionPane; import javax.swing.JPanel; import javax.swing.JRadioButtonMenuItem; import javax.swing.JTabbedPane; -import javax.swing.SwingUtilities; +import javax.swing.KeyStroke; import javax.swing.event.ChangeEvent; import javax.swing.event.MenuEvent; import javax.swing.event.MenuListener; +@SuppressWarnings("serial") public class GAlignFrame extends JInternalFrame { protected JMenuBar alignFrameMenuBar = new JMenuBar(); - protected JMenu fileMenu = new JMenu(); - protected JMenuItem closeMenuItem = new JMenuItem(); - protected JMenu editMenu = new JMenu(); - - protected JMenu viewMenu = new JMenu(); - - protected JMenu annotationsMenu = new JMenu(); - - protected JMenu colourMenu = new JMenu(); - - protected JMenu calculateMenu = new JMenu(); - - protected JMenu webService = new JMenu(); - - protected JMenuItem webServiceNoServices; - - protected JMenuItem selectAllSequenceMenuItem = new JMenuItem(); - - protected JMenuItem deselectAllSequenceMenuItem = new JMenuItem(); - - protected JMenuItem invertSequenceMenuItem = new JMenuItem(); - - protected JMenuItem remove2LeftMenuItem = new JMenuItem(); + public JMenu webService = new JMenu();// BH 2019 was protected, but not + // sufficient for AlignFrame thread run - protected JMenuItem remove2RightMenuItem = new JMenuItem(); + public JMenuItem webServiceNoServices;// BH 2019 was protected, but not + // sufficient for AlignFrame thread run - protected JMenuItem removeGappedColumnMenuItem = new JMenuItem(); + protected JCheckBoxMenuItem viewBoxesMenuItem = new JCheckBoxMenuItem(); - protected JMenuItem removeAllGapsMenuItem = new JMenuItem(); - - public JCheckBoxMenuItem viewBoxesMenuItem = new JCheckBoxMenuItem(); - - public JCheckBoxMenuItem viewTextMenuItem = new JCheckBoxMenuItem(); - - protected JMenuItem sortPairwiseMenuItem = new JMenuItem(); - - protected JMenuItem sortIDMenuItem = new JMenuItem(); - - protected JMenuItem sortLengthMenuItem = new JMenuItem(); - - protected JMenuItem sortGroupMenuItem = new JMenuItem(); + protected JCheckBoxMenuItem viewTextMenuItem = new JCheckBoxMenuItem(); protected JMenu sortByAnnotScore = new JMenu(); - protected JMenuItem removeRedundancyMenuItem = new JMenuItem(); - - protected JMenuItem pairwiseAlignmentMenuItem = new JMenuItem(); - - protected JMenuItem PCAMenuItem = new JMenuItem(); - - protected JMenuItem averageDistanceTreeMenuItem = new JMenuItem(); - - protected JMenuItem neighbourTreeMenuItem = new JMenuItem(); - - BorderLayout borderLayout1 = new BorderLayout(); - - public JLabel statusBar = new JLabel(); - - protected JMenuItem saveAs = new JMenuItem(); + public JLabel statusBar = new JLabel(); // BH 2019 was protected, but not + // sufficient for + // AlignFrame.printWriter protected JMenu outputTextboxMenu = new JMenu(); - protected JRadioButtonMenuItem clustalColour = new JRadioButtonMenuItem(); - - protected JRadioButtonMenuItem zappoColour = new JRadioButtonMenuItem(); - - protected JRadioButtonMenuItem taylorColour = new JRadioButtonMenuItem(); - - protected JRadioButtonMenuItem hydrophobicityColour = new JRadioButtonMenuItem(); - - protected JRadioButtonMenuItem helixColour = new JRadioButtonMenuItem(); - - protected JRadioButtonMenuItem strandColour = new JRadioButtonMenuItem(); - - protected JRadioButtonMenuItem turnColour = new JRadioButtonMenuItem(); - - protected JRadioButtonMenuItem buriedColour = new JRadioButtonMenuItem(); - - protected JRadioButtonMenuItem userDefinedColour = new JRadioButtonMenuItem(); - - protected JRadioButtonMenuItem PIDColour = new JRadioButtonMenuItem(); - - protected JRadioButtonMenuItem BLOSUM62Colour = new JRadioButtonMenuItem(); - - protected JRadioButtonMenuItem nucleotideColour = new JRadioButtonMenuItem(); + protected JCheckBoxMenuItem annotationPanelMenuItem = new JCheckBoxMenuItem(); - protected JRadioButtonMenuItem purinePyrimidineColour = new JRadioButtonMenuItem(); + protected JCheckBoxMenuItem colourTextMenuItem = new JCheckBoxMenuItem(); - protected JRadioButtonMenuItem RNAInteractionColour = new JRadioButtonMenuItem(); - - // protected JRadioButtonMenuItem covariationColour = new - // JRadioButtonMenuItem(); - - protected JRadioButtonMenuItem tcoffeeColour = new JRadioButtonMenuItem(); - - JMenuItem njTreeBlosumMenuItem = new JMenuItem(); - - JMenuItem avDistanceTreeBlosumMenuItem = new JMenuItem(); - - public JCheckBoxMenuItem annotationPanelMenuItem = new JCheckBoxMenuItem(); - - public JCheckBoxMenuItem colourTextMenuItem = new JCheckBoxMenuItem(); - - public JCheckBoxMenuItem showNonconservedMenuItem = new JCheckBoxMenuItem(); - - JMenuItem htmlMenuItem = new JMenuItem(); - - JMenuItem overviewMenuItem = new JMenuItem(); + protected JCheckBoxMenuItem showNonconservedMenuItem = new JCheckBoxMenuItem(); protected JMenuItem undoMenuItem = new JMenuItem(); protected JMenuItem redoMenuItem = new JMenuItem(); - public JCheckBoxMenuItem conservationMenuItem = new JCheckBoxMenuItem(); - - JRadioButtonMenuItem noColourmenuItem = new JRadioButtonMenuItem(); - - public JCheckBoxMenuItem wrapMenuItem = new JCheckBoxMenuItem(); + protected JCheckBoxMenuItem wrapMenuItem = new JCheckBoxMenuItem(); - JMenuItem printMenuItem = new JMenuItem(); - - public JCheckBoxMenuItem renderGapsMenuItem = new JCheckBoxMenuItem(); - - JMenuItem findMenuItem = new JMenuItem(); - - public JCheckBoxMenuItem abovePIDThreshold = new JCheckBoxMenuItem(); + protected JCheckBoxMenuItem renderGapsMenuItem = new JCheckBoxMenuItem(); public JCheckBoxMenuItem showSeqFeatures = new JCheckBoxMenuItem(); - public JCheckBoxMenuItem showSeqFeaturesHeight = new JCheckBoxMenuItem(); - - JMenuItem deleteGroups = new JMenuItem(); - - JMenuItem createGroup = new JMenuItem(); - - JMenuItem unGroup = new JMenuItem(); - - JMenuItem delete = new JMenuItem(); - JMenuItem copy = new JMenuItem(); JMenuItem cut = new JMenuItem(); JMenu pasteMenu = new JMenu(); - JMenuItem pasteNew = new JMenuItem(); - - JMenuItem pasteThis = new JMenuItem(); + protected JCheckBoxMenuItem seqLimits = new JCheckBoxMenuItem(); - public JCheckBoxMenuItem applyToAllGroups = new JCheckBoxMenuItem(); + protected JCheckBoxMenuItem scaleAbove = new JCheckBoxMenuItem(); - JMenuItem createPNG = new JMenuItem(); + protected JCheckBoxMenuItem scaleLeft = new JCheckBoxMenuItem(); - protected JMenuItem font = new JMenuItem(); + protected JCheckBoxMenuItem scaleRight = new JCheckBoxMenuItem(); - public JCheckBoxMenuItem seqLimits = new JCheckBoxMenuItem(); + protected JCheckBoxMenuItem applyToAllGroups; - JMenuItem epsFile = new JMenuItem(); + protected JMenu colourMenu = new JMenu(); - JMenuItem LoadtreeMenuItem = new JMenuItem(); + protected JMenuItem textColour; - public JCheckBoxMenuItem scaleAbove = new JCheckBoxMenuItem(); + protected JCheckBoxMenuItem conservationMenuItem; - public JCheckBoxMenuItem scaleLeft = new JCheckBoxMenuItem(); + protected JMenuItem modifyConservation; - public JCheckBoxMenuItem scaleRight = new JCheckBoxMenuItem(); + protected JCheckBoxMenuItem abovePIDThreshold; - protected JMenuItem modifyPID = new JMenuItem(); + protected JMenuItem modifyPID; - protected JMenuItem modifyConservation = new JMenuItem(); + protected JRadioButtonMenuItem annotationColour; protected JMenu sortByTreeMenu = new JMenu(); protected JMenu sort = new JMenu(); - protected JMenu calculateTree = new JMenu(); - - JMenu jMenu2 = new JMenu(); + protected JMenuItem calculateTree = new JMenuItem(); protected JCheckBoxMenuItem padGapsMenuitem = new JCheckBoxMenuItem(); @@ -246,27 +144,17 @@ public class GAlignFrame extends JInternalFrame protected JCheckBoxMenuItem showDbRefsMenuitem = new JCheckBoxMenuItem(); - protected ButtonGroup colours = new ButtonGroup(); - - JMenuItem vamsasStore = new JMenuItem(); + protected JMenu showTranslation = new JMenu(); - protected JMenuItem showTranslation = new JMenuItem(); + protected JMenuItem showReverse = new JMenuItem(); - protected JMenuItem extractScores = new JMenuItem(); - - protected JMenuItem expandAlignment = new JMenuItem(); + protected JMenuItem showReverseComplement = new JMenuItem(); protected JMenu showProducts = new JMenu(); - public JMenuItem openFeatureSettings = new JMenuItem(); - - JMenuItem fetchSequence = new JMenuItem(); - - JMenuItem annotationColour = new JMenuItem(); + protected JMenuItem runGroovy = new JMenuItem(); - protected JMenuItem rnahelicesColour = new JMenuItem(); - - JMenuItem associatedData = new JMenuItem(); + protected JMenuItem loadVcf; protected JCheckBoxMenuItem autoCalculate = new JCheckBoxMenuItem(); @@ -274,40 +162,8 @@ public class GAlignFrame extends JInternalFrame protected JCheckBoxMenuItem listenToViewSelections = new JCheckBoxMenuItem(); - JMenu addSequenceMenu = new JMenu(); - - JMenuItem addFromFile = new JMenuItem(); - - JMenuItem addFromText = new JMenuItem(); - - JMenuItem addFromURL = new JMenuItem(); - - JMenuItem exportAnnotations = new JMenuItem(); - - JMenuItem exportFeatures = new JMenuItem(); - protected JPanel statusPanel = new JPanel(); - GridLayout gridLayout1 = new GridLayout(); - - JMenu jMenu3 = new JMenu(); - - JMenuItem showAllSeqs = new JMenuItem(); - - JMenuItem showAllColumns = new JMenuItem(); - - JMenu hideMenu = new JMenu(); - - JMenuItem hideSelSequences = new JMenuItem(); - - JMenuItem hideSelColumns = new JMenuItem(); - - JMenuItem hideAllButSelection = new JMenuItem(); - - JMenuItem hideAllSelection = new JMenuItem(); - - JMenuItem showAllhidden = new JMenuItem(); - protected JMenuItem showAllSeqAnnotations = new JMenuItem(); protected JMenuItem hideAllSeqAnnotations = new JMenuItem(); @@ -316,27 +172,15 @@ public class GAlignFrame extends JInternalFrame protected JMenuItem hideAllAlAnnotations = new JMenuItem(); - protected JCheckBoxMenuItem sortAnnBySequence = new JCheckBoxMenuItem(); - - protected JCheckBoxMenuItem sortAnnByLabel = new JCheckBoxMenuItem(); + protected JCheckBoxMenuItem showComplementMenuItem = new JCheckBoxMenuItem(); protected JCheckBoxMenuItem hiddenMarkers = new JCheckBoxMenuItem(); - JMenuItem invertColSel = new JMenuItem(); - protected JTabbedPane tabbedPane = new JTabbedPane(); - JMenuItem save = new JMenuItem(); - protected JMenuItem reload = new JMenuItem(); - JMenuItem newView = new JMenuItem(); - - JMenuItem textColour = new JMenuItem(); - - JMenu formatMenu = new JMenu(); - - JMenu selectMenu = new JMenu(); + protected JMenu formatMenu = new JMenu(); protected JCheckBoxMenuItem idRightAlign = new JCheckBoxMenuItem(); @@ -348,18 +192,6 @@ public class GAlignFrame extends JInternalFrame protected JMenuItem expandViews = new JMenuItem(); - JMenuItem pageSetup = new JMenuItem(); - - JMenuItem alignmentProperties = new JMenuItem(); - - JMenu tooltipSettingsMenu = new JMenu(); - - private JMenuItem justifyLeftMenuItem = new JMenuItem(); - - private JMenuItem justifyRightMenuItem = new JMenuItem(); - - JMenu autoAnnMenu = new JMenu(); - protected JCheckBoxMenuItem showGroupConsensus = new JCheckBoxMenuItem(); protected JCheckBoxMenuItem showGroupConservation = new JCheckBoxMenuItem(); @@ -372,35 +204,38 @@ public class GAlignFrame extends JInternalFrame protected JCheckBoxMenuItem applyAutoAnnotationSettings = new JCheckBoxMenuItem(); - protected JRadioButtonMenuItem showAutoFirst = new JRadioButtonMenuItem(); - - protected JRadioButtonMenuItem showAutoLast = new JRadioButtonMenuItem(); - - private JMenuItem grpsFromSelection = new JMenuItem(); + protected JMenuItem openFeatureSettings; private SequenceAnnotationOrder annotationSortOrder; private boolean showAutoCalculatedAbove = false; + private Map accelerators = new HashMap<>(); + + private SplitContainerI splitFrame; + public GAlignFrame() { try { + + // for Web-page embedding using id=align-frame-div + setName("jalview-alignment"); + jbInit(); setJMenuBar(alignFrameMenuBar); // dynamically fill save as menu with available formats - for (int i = 0; i < jalview.io.FormatAdapter.WRITEABLE_FORMATS.length; i++) + for (String ff : FileFormats.getInstance().getWritableFormats(true)) { - JMenuItem item = new JMenuItem( - jalview.io.FormatAdapter.WRITEABLE_FORMATS[i]); + JMenuItem item = new JMenuItem(ff); - item.addActionListener(new java.awt.event.ActionListener() + item.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { - outputText_actionPerformed(e); + outputText_actionPerformed(e.getActionCommand()); } }); @@ -411,7 +246,7 @@ public class GAlignFrame extends JInternalFrame System.err.println(e.toString()); } - if (!new jalview.util.Platform().isAMac()) + if (Platform.allowMnemonics()) // was "not mac and not JS" { closeMenuItem.setMnemonic('C'); outputTextboxMenu.setMnemonic('T'); @@ -422,263 +257,96 @@ public class GAlignFrame extends JInternalFrame pasteMenu.setMnemonic('P'); reload.setMnemonic('R'); } - - if (jalview.gui.UserDefinedColours.getUserColourSchemes() != null) - { - java.util.Enumeration userColours = jalview.gui.UserDefinedColours - .getUserColourSchemes().keys(); - - while (userColours.hasMoreElements()) - { - final JRadioButtonMenuItem radioItem = new JRadioButtonMenuItem( - userColours.nextElement().toString()); - radioItem.setName("USER_DEFINED"); - radioItem.addMouseListener(new MouseAdapter() - { - @Override - public void mousePressed(MouseEvent evt) - { - if (evt.isControlDown() - || SwingUtilities.isRightMouseButton(evt)) - { - radioItem.removeActionListener(radioItem.getActionListeners()[0]); - - int option = JOptionPane.showInternalConfirmDialog( - jalview.gui.Desktop.desktop, - MessageManager - .getString("label.remove_from_default_list"), - MessageManager - .getString("label.remove_user_defined_colour"), - JOptionPane.YES_NO_OPTION); - if (option == JOptionPane.YES_OPTION) - { - jalview.gui.UserDefinedColours - .removeColourFromDefaults(radioItem.getText()); - colourMenu.remove(radioItem); - } - else - { - radioItem.addActionListener(new ActionListener() - { - @Override - public void actionPerformed(ActionEvent evt) - { - userDefinedColour_actionPerformed(evt); - } - }); - } - } - } - }); - radioItem.addActionListener(new ActionListener() - { - @Override - public void actionPerformed(ActionEvent evt) - { - userDefinedColour_actionPerformed(evt); - } - }); - colourMenu.insert(radioItem, 15); - colours.add(radioItem); - } - } - colours.add(noColourmenuItem); - colours.add(clustalColour); - colours.add(zappoColour); - colours.add(taylorColour); - colours.add(hydrophobicityColour); - colours.add(helixColour); - colours.add(strandColour); - colours.add(turnColour); - colours.add(buriedColour); - colours.add(userDefinedColour); - colours.add(PIDColour); - colours.add(BLOSUM62Colour); - colours.add(nucleotideColour); - colours.add(purinePyrimidineColour); - // colours.add(covariationColour); - colours.add(tcoffeeColour); - colours.add(RNAInteractionColour); - setColourSelected(jalview.bin.Cache - .getDefault("DEFAULT_COLOUR", "None")); - } - public void setColourSelected(String defaultColour) + private void jbInit() throws Exception { + initColourMenu(); - if (defaultColour != null) + JMenuItem saveAs = new JMenuItem( + MessageManager.getString("action.save_as")); + ActionListener al = new ActionListener() { - int index = ColourSchemeProperty - .getColourIndexFromName(defaultColour); - - switch (index) + @Override + public void actionPerformed(ActionEvent e) { - case ColourSchemeProperty.CLUSTAL: - clustalColour.setSelected(true); - - break; - - case ColourSchemeProperty.BLOSUM: - BLOSUM62Colour.setSelected(true); - - break; - - case ColourSchemeProperty.PID: - PIDColour.setSelected(true); - - break; - - case ColourSchemeProperty.ZAPPO: - zappoColour.setSelected(true); - - break; - - case ColourSchemeProperty.TAYLOR: - taylorColour.setSelected(true); - break; - - case ColourSchemeProperty.HYDROPHOBIC: - hydrophobicityColour.setSelected(true); - - break; - - case ColourSchemeProperty.HELIX: - helixColour.setSelected(true); - - break; - - case ColourSchemeProperty.STRAND: - strandColour.setSelected(true); - - break; - - case ColourSchemeProperty.TURN: - turnColour.setSelected(true); - - break; - - case ColourSchemeProperty.BURIED: - buriedColour.setSelected(true); - - break; - - case ColourSchemeProperty.NUCLEOTIDE: - nucleotideColour.setSelected(true); - - break; - - case ColourSchemeProperty.TCOFFEE: - tcoffeeColour.setSelected(true); - break; - - case ColourSchemeProperty.PURINEPYRIMIDINE: - purinePyrimidineColour.setSelected(true); - - break; - - case ColourSchemeProperty.RNAINTERACTION: - RNAInteractionColour.setSelected(true); - - break; - /* - * case ColourSchemeProperty.COVARIATION: - * covariationColour.setSelected(true); - * - * break; - */ - case ColourSchemeProperty.USER_DEFINED: - userDefinedColour.setSelected(true); + saveAs_actionPerformed(); + } + }; - break; - case ColourSchemeProperty.NONE: - default: - noColourmenuItem.setSelected(true); - break; + // FIXME getDefaultToolkit throws an exception in Headless mode + KeyStroke keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_S, + jalview.util.ShortcutKeyMaskExWrapper.getMenuShortcutKeyMaskEx() + | jalview.util.ShortcutKeyMaskExWrapper.SHIFT_DOWN_MASK, + false); + addMenuActionAndAccelerator(keyStroke, saveAs, al); + closeMenuItem.setText(MessageManager.getString("action.close")); + keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_W, + jalview.util.ShortcutKeyMaskExWrapper.getMenuShortcutKeyMaskEx(), false); + al = new ActionListener() + { + @Override + public void actionPerformed(ActionEvent e) + { + closeMenuItem_actionPerformed(false); } - } + }; + addMenuActionAndAccelerator(keyStroke, closeMenuItem, al); - } + JMenu editMenu = new JMenu(MessageManager.getString("action.edit")); + JMenu viewMenu = new JMenu(MessageManager.getString("action.view")); + JMenu annotationsMenu = new JMenu( + MessageManager.getString("action.annotations")); + JMenu showMenu = new JMenu(MessageManager.getString("action.show")); + colourMenu.setText(MessageManager.getString("action.colour")); + JMenu calculateMenu = new JMenu( + MessageManager.getString("action.calculate")); + webService.setText(MessageManager.getString("action.web_service")); + JMenuItem selectAllSequenceMenuItem = new JMenuItem( + MessageManager.getString("action.select_all")); + keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_A, + jalview.util.ShortcutKeyMaskExWrapper.getMenuShortcutKeyMaskEx(), false); + al = new ActionListener() + { + @Override + public void actionPerformed(ActionEvent e) + { + selectAllSequenceMenuItem_actionPerformed(e); + } + }; + addMenuActionAndAccelerator(keyStroke, selectAllSequenceMenuItem, al); - private void jbInit() throws Exception - { - fileMenu.setText(MessageManager.getString("action.file")); - saveAs.setText(MessageManager.getString("action.save_as") + "..."); - saveAs.setAccelerator(javax.swing.KeyStroke.getKeyStroke( - java.awt.event.KeyEvent.VK_S, Toolkit.getDefaultToolkit() - .getMenuShortcutKeyMask() - | java.awt.event.KeyEvent.SHIFT_MASK, false)); - saveAs.addActionListener(new ActionListener() + JMenuItem deselectAllSequenceMenuItem = new JMenuItem( + MessageManager.getString("action.deselect_all")); + keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_ESCAPE, 0, false); + al = new ActionListener() { @Override public void actionPerformed(ActionEvent e) { - saveAs_actionPerformed(e); + deselectAllSequenceMenuItem_actionPerformed(e); } - }); - closeMenuItem.setText(MessageManager.getString("action.close")); - closeMenuItem.setAccelerator(javax.swing.KeyStroke.getKeyStroke( - java.awt.event.KeyEvent.VK_W, Toolkit.getDefaultToolkit() - .getMenuShortcutKeyMask(), false)); - closeMenuItem.addActionListener(new java.awt.event.ActionListener() + }; + addMenuActionAndAccelerator(keyStroke, deselectAllSequenceMenuItem, al); + + JMenuItem invertSequenceMenuItem = new JMenuItem( + MessageManager.getString("action.invert_sequence_selection")); + keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_I, + jalview.util.ShortcutKeyMaskExWrapper.getMenuShortcutKeyMaskEx(), false); + al = new ActionListener() { @Override public void actionPerformed(ActionEvent e) { - closeMenuItem_actionPerformed(false); + invertSequenceMenuItem_actionPerformed(e); } - }); - editMenu.setText(MessageManager.getString("action.edit")); - viewMenu.setText(MessageManager.getString("action.view")); - annotationsMenu.setText(MessageManager.getString("action.annotations")); - colourMenu.setText(MessageManager.getString("action.colour")); - calculateMenu.setText(MessageManager.getString("action.calculate")); - webService.setText(MessageManager.getString("action.web_service")); - selectAllSequenceMenuItem.setText(MessageManager - .getString("action.select_all")); - selectAllSequenceMenuItem.setAccelerator(javax.swing.KeyStroke - .getKeyStroke(java.awt.event.KeyEvent.VK_A, Toolkit - .getDefaultToolkit().getMenuShortcutKeyMask(), false)); - selectAllSequenceMenuItem - .addActionListener(new java.awt.event.ActionListener() - { - @Override - public void actionPerformed(ActionEvent e) - { - selectAllSequenceMenuItem_actionPerformed(e); - } - }); - deselectAllSequenceMenuItem.setText(MessageManager - .getString("action.deselect_all")); - deselectAllSequenceMenuItem.setAccelerator(javax.swing.KeyStroke - .getKeyStroke(java.awt.event.KeyEvent.VK_ESCAPE, 0, false)); - deselectAllSequenceMenuItem - .addActionListener(new java.awt.event.ActionListener() - { - @Override - public void actionPerformed(ActionEvent e) - { - deselectAllSequenceMenuItem_actionPerformed(e); - } - }); - invertSequenceMenuItem.setText(MessageManager - .getString("action.invert_sequence_selection")); - invertSequenceMenuItem.setAccelerator(javax.swing.KeyStroke - .getKeyStroke(java.awt.event.KeyEvent.VK_I, Toolkit - .getDefaultToolkit().getMenuShortcutKeyMask(), false)); - invertSequenceMenuItem - .addActionListener(new java.awt.event.ActionListener() - { - @Override - public void actionPerformed(ActionEvent e) - { - invertSequenceMenuItem_actionPerformed(e); - } - }); - grpsFromSelection.setText(MessageManager - .getString("action.make_groups_selection")); - grpsFromSelection.addActionListener(new java.awt.event.ActionListener() + }; + addMenuActionAndAccelerator(keyStroke, invertSequenceMenuItem, al); + + JMenuItem grpsFromSelection = new JMenuItem( + MessageManager.getString("action.make_groups_selection")); + grpsFromSelection.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) @@ -686,11 +354,11 @@ public class GAlignFrame extends JInternalFrame makeGrpsFromSelection_actionPerformed(e); } }); - expandAlignment.setText(MessageManager - .getString("action.view_flanking_regions")); - expandAlignment.setToolTipText(MessageManager - .getString("label.view_flanking_regions")); - expandAlignment.addActionListener(new java.awt.event.ActionListener() + JMenuItem expandAlignment = new JMenuItem( + MessageManager.getString("action.view_flanking_regions")); + expandAlignment.setToolTipText( + MessageManager.getString("label.view_flanking_regions")); + expandAlignment.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) @@ -698,394 +366,195 @@ public class GAlignFrame extends JInternalFrame expand_newalign(e); } }); - remove2LeftMenuItem.setText(MessageManager - .getString("action.remove_left")); - remove2LeftMenuItem.setAccelerator(javax.swing.KeyStroke.getKeyStroke( - java.awt.event.KeyEvent.VK_L, Toolkit.getDefaultToolkit() - .getMenuShortcutKeyMask(), false)); - remove2LeftMenuItem - .addActionListener(new java.awt.event.ActionListener() - { - @Override - public void actionPerformed(ActionEvent e) - { - remove2LeftMenuItem_actionPerformed(e); - } - }); - remove2RightMenuItem.setText(MessageManager - .getString("action.remove_right")); - remove2RightMenuItem.setAccelerator(javax.swing.KeyStroke.getKeyStroke( - java.awt.event.KeyEvent.VK_R, Toolkit.getDefaultToolkit() - .getMenuShortcutKeyMask(), false)); - remove2RightMenuItem - .addActionListener(new java.awt.event.ActionListener() - { - @Override - public void actionPerformed(ActionEvent e) - { - remove2RightMenuItem_actionPerformed(e); - } - }); - removeGappedColumnMenuItem.setText(MessageManager - .getString("action.remove_empty_columns")); - removeGappedColumnMenuItem.setAccelerator(javax.swing.KeyStroke - .getKeyStroke(java.awt.event.KeyEvent.VK_E, Toolkit - .getDefaultToolkit().getMenuShortcutKeyMask(), false)); - removeGappedColumnMenuItem - .addActionListener(new java.awt.event.ActionListener() - { - @Override - public void actionPerformed(ActionEvent e) - { - removeGappedColumnMenuItem_actionPerformed(e); - } - }); - removeAllGapsMenuItem.setText(MessageManager - .getString("action.remove_all_gaps")); - removeAllGapsMenuItem.setAccelerator(javax.swing.KeyStroke - .getKeyStroke(java.awt.event.KeyEvent.VK_E, Toolkit - .getDefaultToolkit().getMenuShortcutKeyMask() - | java.awt.event.KeyEvent.SHIFT_MASK, false)); - removeAllGapsMenuItem - .addActionListener(new java.awt.event.ActionListener() - { - @Override - public void actionPerformed(ActionEvent e) - { - removeAllGapsMenuItem_actionPerformed(e); - } - }); - justifyLeftMenuItem.setText(MessageManager - .getString("action.left_justify_alignment")); - justifyLeftMenuItem - .addActionListener(new java.awt.event.ActionListener() - { - @Override - public void actionPerformed(ActionEvent e) - { - justifyLeftMenuItem_actionPerformed(e); - } - }); - justifyRightMenuItem.setText(MessageManager - .getString("action.right_justify_alignment")); - justifyRightMenuItem - .addActionListener(new java.awt.event.ActionListener() - { - @Override - public void actionPerformed(ActionEvent e) - { - justifyRightMenuItem_actionPerformed(e); - } - }); - viewBoxesMenuItem.setText(MessageManager.getString("action.boxes")); - viewBoxesMenuItem.setState(true); - viewBoxesMenuItem.addActionListener(new java.awt.event.ActionListener() + JMenuItem remove2LeftMenuItem = new JMenuItem( + MessageManager.getString("action.remove_left")); + keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_L, + jalview.util.ShortcutKeyMaskExWrapper.getMenuShortcutKeyMaskEx(), false); + al = new ActionListener() { @Override public void actionPerformed(ActionEvent e) { - viewBoxesMenuItem_actionPerformed(e); + remove2LeftMenuItem_actionPerformed(e); } - }); - viewTextMenuItem.setText(MessageManager.getString("action.text")); - viewTextMenuItem.setState(true); - viewTextMenuItem.addActionListener(new java.awt.event.ActionListener() + }; + addMenuActionAndAccelerator(keyStroke, remove2LeftMenuItem, al); + + JMenuItem remove2RightMenuItem = new JMenuItem( + MessageManager.getString("action.remove_right")); + keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_R, + jalview.util.ShortcutKeyMaskExWrapper.getMenuShortcutKeyMaskEx(), false); + al = new ActionListener() { @Override public void actionPerformed(ActionEvent e) { - viewTextMenuItem_actionPerformed(e); + remove2RightMenuItem_actionPerformed(e); } - }); - showNonconservedMenuItem.setText(MessageManager - .getString("label.show_non_conversed")); - showNonconservedMenuItem.setState(false); - showNonconservedMenuItem - .addActionListener(new java.awt.event.ActionListener() - { - @Override - public void actionPerformed(ActionEvent e) - { - showUnconservedMenuItem_actionPerformed(e); - } - }); - sortPairwiseMenuItem.setText(MessageManager - .getString("action.by_pairwise_id")); - sortPairwiseMenuItem - .addActionListener(new java.awt.event.ActionListener() - { - @Override - public void actionPerformed(ActionEvent e) - { - sortPairwiseMenuItem_actionPerformed(e); - } - }); - sortIDMenuItem.setText(MessageManager.getString("action.by_id")); - sortIDMenuItem.addActionListener(new java.awt.event.ActionListener() + }; + addMenuActionAndAccelerator(keyStroke, remove2RightMenuItem, al); + + JMenuItem removeGappedColumnMenuItem = new JMenuItem( + MessageManager.getString("action.remove_empty_columns")); + keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_E, + jalview.util.ShortcutKeyMaskExWrapper.getMenuShortcutKeyMaskEx(), false); + al = new ActionListener() { @Override public void actionPerformed(ActionEvent e) { - sortIDMenuItem_actionPerformed(e); + removeGappedColumnMenuItem_actionPerformed(e); } - }); - sortLengthMenuItem - .setText(MessageManager.getString("action.by_length")); - sortLengthMenuItem - .addActionListener(new java.awt.event.ActionListener() - { - @Override - public void actionPerformed(ActionEvent e) - { - sortLengthMenuItem_actionPerformed(e); - } - }); - sortGroupMenuItem.setText(MessageManager.getString("action.by_group")); - sortGroupMenuItem.addActionListener(new java.awt.event.ActionListener() + }; + addMenuActionAndAccelerator(keyStroke, removeGappedColumnMenuItem, al); + + JMenuItem removeAllGapsMenuItem = new JMenuItem( + MessageManager.getString("action.remove_all_gaps")); + keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_E, + jalview.util.ShortcutKeyMaskExWrapper.getMenuShortcutKeyMaskEx() + | jalview.util.ShortcutKeyMaskExWrapper.SHIFT_DOWN_MASK, + false); + al = new ActionListener() { @Override public void actionPerformed(ActionEvent e) { - sortGroupMenuItem_actionPerformed(e); + removeAllGapsMenuItem_actionPerformed(e); } - }); - removeRedundancyMenuItem.setText(MessageManager - .getString("action.remove_redundancy").concat("...")); - removeRedundancyMenuItem.setAccelerator(javax.swing.KeyStroke - .getKeyStroke(java.awt.event.KeyEvent.VK_D, Toolkit - .getDefaultToolkit().getMenuShortcutKeyMask(), false)); - removeRedundancyMenuItem - .addActionListener(new java.awt.event.ActionListener() - { - @Override - public void actionPerformed(ActionEvent e) - { - removeRedundancyMenuItem_actionPerformed(e); - } - }); - pairwiseAlignmentMenuItem.setText(MessageManager - .getString("action.pairwise_alignment")); - pairwiseAlignmentMenuItem - .addActionListener(new java.awt.event.ActionListener() - { - @Override - public void actionPerformed(ActionEvent e) - { - pairwiseAlignmentMenuItem_actionPerformed(e); - } - }); - PCAMenuItem.setText(MessageManager - .getString("label.principal_component_analysis")); - PCAMenuItem.addActionListener(new java.awt.event.ActionListener() - { - @Override - public void actionPerformed(ActionEvent e) - { - PCAMenuItem_actionPerformed(e); - } - }); - averageDistanceTreeMenuItem.setText(MessageManager - .getString("label.average_distance_identity")); - averageDistanceTreeMenuItem - .addActionListener(new java.awt.event.ActionListener() - { - @Override - public void actionPerformed(ActionEvent e) - { - averageDistanceTreeMenuItem_actionPerformed(e); - } - }); - neighbourTreeMenuItem.setText(MessageManager - .getString("label.neighbour_joining_identity")); - neighbourTreeMenuItem - .addActionListener(new java.awt.event.ActionListener() - { - @Override - public void actionPerformed(ActionEvent e) - { - neighbourTreeMenuItem_actionPerformed(e); - } - }); - this.getContentPane().setLayout(borderLayout1); - alignFrameMenuBar.setFont(new java.awt.Font("Verdana", 0, 11)); - statusBar.setBackground(Color.white); - statusBar.setFont(new java.awt.Font("Verdana", 0, 11)); - statusBar.setBorder(BorderFactory.createLineBorder(Color.black)); - statusBar.setText(MessageManager.getString("label.status_bar")); - outputTextboxMenu.setText(MessageManager - .getString("label.out_to_textbox")); - clustalColour.setText(MessageManager.getString("label.clustalx")); + }; + addMenuActionAndAccelerator(keyStroke, removeAllGapsMenuItem, al); - clustalColour.addActionListener(new java.awt.event.ActionListener() + JMenuItem justifyLeftMenuItem = new JMenuItem( + MessageManager.getString("action.left_justify_alignment")); + justifyLeftMenuItem.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { - clustalColour_actionPerformed(e); + justifyLeftMenuItem_actionPerformed(e); } }); - zappoColour.setText(MessageManager.getString("label.zappo")); - zappoColour.addActionListener(new java.awt.event.ActionListener() + JMenuItem justifyRightMenuItem = new JMenuItem( + MessageManager.getString("action.right_justify_alignment")); + justifyRightMenuItem.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { - zappoColour_actionPerformed(e); + justifyRightMenuItem_actionPerformed(e); } }); - taylorColour.setText(MessageManager.getString("label.taylor")); - taylorColour.addActionListener(new java.awt.event.ActionListener() + viewBoxesMenuItem.setText(MessageManager.getString("action.boxes")); + viewBoxesMenuItem.setState(true); + viewBoxesMenuItem.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { - taylorColour_actionPerformed(e); + viewBoxesMenuItem_actionPerformed(e); } }); - hydrophobicityColour.setText(MessageManager - .getString("label.hydrophobicity")); - hydrophobicityColour - .addActionListener(new java.awt.event.ActionListener() - { - @Override - public void actionPerformed(ActionEvent e) - { - hydrophobicityColour_actionPerformed(e); - } - }); - helixColour.setText(MessageManager.getString("label.helix_propensity")); - helixColour.addActionListener(new java.awt.event.ActionListener() + viewTextMenuItem.setText(MessageManager.getString("action.text")); + viewTextMenuItem.setState(true); + viewTextMenuItem.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { - helixColour_actionPerformed(e); + viewTextMenuItem_actionPerformed(e); } }); - strandColour.setText(MessageManager - .getString("label.strand_propensity")); - strandColour.addActionListener(new java.awt.event.ActionListener() + showNonconservedMenuItem + .setText(MessageManager.getString("label.show_non_conserved")); + showNonconservedMenuItem.setState(false); + showNonconservedMenuItem.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { - strandColour_actionPerformed(e); + showUnconservedMenuItem_actionPerformed(e); } }); - turnColour.setText(MessageManager.getString("label.turn_propensity")); - turnColour.addActionListener(new java.awt.event.ActionListener() + JMenuItem sortPairwiseMenuItem = new JMenuItem( + MessageManager.getString("action.by_pairwise_id")); + sortPairwiseMenuItem.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { - turnColour_actionPerformed(e); + sortPairwiseMenuItem_actionPerformed(e); } }); - buriedColour.setText(MessageManager.getString("label.buried_index")); - buriedColour.addActionListener(new java.awt.event.ActionListener() + JMenuItem sortIDMenuItem = new JMenuItem( + MessageManager.getString("action.by_id")); + sortIDMenuItem.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { - buriedColour_actionPerformed(e); + sortIDMenuItem_actionPerformed(e); } }); - userDefinedColour.setText(MessageManager - .getString("action.user_defined")); - userDefinedColour.addActionListener(new java.awt.event.ActionListener() + JMenuItem sortLengthMenuItem = new JMenuItem( + MessageManager.getString("action.by_length")); + sortLengthMenuItem.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { - userDefinedColour_actionPerformed(e); + sortLengthMenuItem_actionPerformed(e); } }); - PIDColour - .setText(MessageManager.getString("label.percentage_identity")); - PIDColour.addActionListener(new java.awt.event.ActionListener() + JMenuItem sortGroupMenuItem = new JMenuItem( + MessageManager.getString("action.by_group")); + sortGroupMenuItem.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { - PIDColour_actionPerformed(e); + sortGroupMenuItem_actionPerformed(e); } }); - BLOSUM62Colour - .setText(MessageManager.getString("label.blosum62_score")); - BLOSUM62Colour.addActionListener(new java.awt.event.ActionListener() + + JMenuItem removeRedundancyMenuItem = new JMenuItem( + MessageManager.getString("action.remove_redundancy")); + keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_D, + jalview.util.ShortcutKeyMaskExWrapper.getMenuShortcutKeyMaskEx(), false); + al = new ActionListener() { @Override public void actionPerformed(ActionEvent e) { - BLOSUM62Colour_actionPerformed(e); + removeRedundancyMenuItem_actionPerformed(e); } - }); - nucleotideColour.setText(MessageManager.getString("label.nucleotide")); - nucleotideColour.addActionListener(new java.awt.event.ActionListener() + }; + addMenuActionAndAccelerator(keyStroke, removeRedundancyMenuItem, al); + + JMenuItem pairwiseAlignmentMenuItem = new JMenuItem( + MessageManager.getString("action.pairwise_alignment")); + pairwiseAlignmentMenuItem.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { - nucleotideColour_actionPerformed(e); + pairwiseAlignmentMenuItem_actionPerformed(e); } }); - purinePyrimidineColour.setText(MessageManager - .getString("label.purine_pyrimidine")); - purinePyrimidineColour - .addActionListener(new java.awt.event.ActionListener() - { - @Override - public void actionPerformed(ActionEvent e) - { - purinePyrimidineColour_actionPerformed(e); - } - }); - - RNAInteractionColour.setText("RNA Interaction type"); - RNAInteractionColour - .addActionListener(new java.awt.event.ActionListener() - { - @Override - public void actionPerformed(ActionEvent e) - { - RNAInteractionColour_actionPerformed(e); - } - }); - /* - * covariationColour.setText("Covariation"); - * covariationColour.addActionListener(new java.awt.event.ActionListener() { - * public void actionPerformed(ActionEvent e) { - * covariationColour_actionPerformed(e); } }); - */ + this.getContentPane().setLayout(new BorderLayout()); + alignFrameMenuBar.setFont(new java.awt.Font("Verdana", 0, 11)); + statusBar.setBackground(Color.white); + statusBar.setFont(new java.awt.Font("Verdana", 0, 11)); + statusBar.setBorder(BorderFactory.createLineBorder(Color.black)); + statusBar.setText(MessageManager.getString("label.status_bar")); + outputTextboxMenu + .setText(MessageManager.getString("label.out_to_textbox")); - avDistanceTreeBlosumMenuItem.setText(MessageManager - .getString("label.average_distance_bloslum62")); - avDistanceTreeBlosumMenuItem - .addActionListener(new java.awt.event.ActionListener() - { - @Override - public void actionPerformed(ActionEvent e) - { - avTreeBlosumMenuItem_actionPerformed(e); - } - }); - njTreeBlosumMenuItem.setText(MessageManager - .getString("label.neighbour_blosum62")); - njTreeBlosumMenuItem - .addActionListener(new java.awt.event.ActionListener() - { - @Override - public void actionPerformed(ActionEvent e) - { - njTreeBlosumMenuItem_actionPerformed(e); - } - }); annotationPanelMenuItem.setActionCommand(""); - annotationPanelMenuItem.setText(MessageManager - .getString("label.show_annotations")); - annotationPanelMenuItem.setState(Cache.getDefault("SHOW_ANNOTATIONS", - true)); + annotationPanelMenuItem + .setText(MessageManager.getString("label.show_annotations")); + annotationPanelMenuItem + .setState(Cache.getDefault("SHOW_ANNOTATIONS", true)); annotationPanelMenuItem.addActionListener(new ActionListener() { @Override @@ -1094,8 +563,8 @@ public class GAlignFrame extends JInternalFrame annotationPanelMenuItem_actionPerformed(e); } }); - showAllAlAnnotations.setText(MessageManager - .getString("label.show_all_al_annotations")); + showAllAlAnnotations.setText( + MessageManager.getString("label.show_all_al_annotations")); final boolean isAnnotationPanelShown = annotationPanelMenuItem .getState(); showAllAlAnnotations.setEnabled(isAnnotationPanelShown); @@ -1107,8 +576,8 @@ public class GAlignFrame extends JInternalFrame showAllAnnotations_actionPerformed(false, true); } }); - hideAllAlAnnotations.setText(MessageManager - .getString("label.hide_all_al_annotations")); + hideAllAlAnnotations.setText( + MessageManager.getString("label.hide_all_al_annotations")); hideAllAlAnnotations.setEnabled(isAnnotationPanelShown); hideAllAlAnnotations.addActionListener(new ActionListener() { @@ -1118,8 +587,8 @@ public class GAlignFrame extends JInternalFrame hideAllAnnotations_actionPerformed(false, true); } }); - showAllSeqAnnotations.setText(MessageManager - .getString("label.show_all_seq_annotations")); + showAllSeqAnnotations.setText( + MessageManager.getString("label.show_all_seq_annotations")); showAllSeqAnnotations.setEnabled(isAnnotationPanelShown); showAllSeqAnnotations.addActionListener(new ActionListener() { @@ -1129,8 +598,8 @@ public class GAlignFrame extends JInternalFrame showAllAnnotations_actionPerformed(true, false); } }); - hideAllSeqAnnotations.setText(MessageManager - .getString("label.hide_all_seq_annotations")); + hideAllSeqAnnotations.setText( + MessageManager.getString("label.hide_all_seq_annotations")); hideAllSeqAnnotations.setEnabled(isAnnotationPanelShown); hideAllSeqAnnotations.addActionListener(new ActionListener() { @@ -1143,10 +612,13 @@ public class GAlignFrame extends JInternalFrame SequenceAnnotationOrder sortAnnotationsBy = SequenceAnnotationOrder .valueOf(Cache.getDefault(Preferences.SORT_ANNOTATIONS, SequenceAnnotationOrder.NONE.name())); - sortAnnBySequence.setText(MessageManager - .getString("label.sort_annotations_by_sequence")); - sortAnnBySequence - .setSelected(sortAnnotationsBy == SequenceAnnotationOrder.SEQUENCE_AND_LABEL); + final JCheckBoxMenuItem sortAnnBySequence = new JCheckBoxMenuItem( + MessageManager.getString("label.sort_annotations_by_sequence")); + final JCheckBoxMenuItem sortAnnByLabel = new JCheckBoxMenuItem( + MessageManager.getString("label.sort_annotations_by_label")); + + sortAnnBySequence.setSelected( + sortAnnotationsBy == SequenceAnnotationOrder.SEQUENCE_AND_LABEL); sortAnnBySequence.addActionListener(new ActionListener() { @Override @@ -1154,15 +626,14 @@ public class GAlignFrame extends JInternalFrame { boolean newState = sortAnnBySequence.getState(); sortAnnByLabel.setSelected(false); - setAnnotationSortOrder(newState ? SequenceAnnotationOrder.SEQUENCE_AND_LABEL - : SequenceAnnotationOrder.NONE); + setAnnotationSortOrder( + newState ? SequenceAnnotationOrder.SEQUENCE_AND_LABEL + : SequenceAnnotationOrder.NONE); sortAnnotations_actionPerformed(); } }); - sortAnnByLabel.setText(MessageManager - .getString("label.sort_annotations_by_label")); - sortAnnByLabel - .setSelected(sortAnnotationsBy == SequenceAnnotationOrder.LABEL_AND_SEQUENCE); + sortAnnByLabel.setSelected( + sortAnnotationsBy == SequenceAnnotationOrder.LABEL_AND_SEQUENCE); sortAnnByLabel.addActionListener(new ActionListener() { @Override @@ -1170,24 +641,26 @@ public class GAlignFrame extends JInternalFrame { boolean newState = sortAnnByLabel.getState(); sortAnnBySequence.setSelected(false); - setAnnotationSortOrder(newState ? SequenceAnnotationOrder.LABEL_AND_SEQUENCE - : SequenceAnnotationOrder.NONE); + setAnnotationSortOrder( + newState ? SequenceAnnotationOrder.LABEL_AND_SEQUENCE + : SequenceAnnotationOrder.NONE); sortAnnotations_actionPerformed(); } }); - colourTextMenuItem.setText(MessageManager - .getString("label.colour_text")); - colourTextMenuItem - .addActionListener(new java.awt.event.ActionListener() - { - @Override - public void actionPerformed(ActionEvent e) - { - colourTextMenuItem_actionPerformed(e); - } - }); - htmlMenuItem.setText(MessageManager.getString("label.html")); - htmlMenuItem.addActionListener(new java.awt.event.ActionListener() + colourTextMenuItem = new JCheckBoxMenuItem( + MessageManager.getString("label.colour_text")); + colourTextMenuItem.addActionListener(new ActionListener() + { + @Override + public void actionPerformed(ActionEvent e) + { + colourTextMenuItem_actionPerformed(e); + } + }); + + JMenuItem htmlMenuItem = new JMenuItem( + MessageManager.getString("label.html")); + htmlMenuItem.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) @@ -1195,9 +668,21 @@ public class GAlignFrame extends JInternalFrame htmlMenuItem_actionPerformed(e); } }); - overviewMenuItem.setText(MessageManager - .getString("label.overview_window")); - overviewMenuItem.addActionListener(new java.awt.event.ActionListener() + + JMenuItem createBioJS = new JMenuItem( + MessageManager.getString("label.biojs_html_export")); + createBioJS.addActionListener(new java.awt.event.ActionListener() + { + @Override + public void actionPerformed(ActionEvent e) + { + bioJSMenuItem_actionPerformed(e); + } + }); + + JMenuItem overviewMenuItem = new JMenuItem( + MessageManager.getString("label.overview_window")); + overviewMenuItem.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) @@ -1205,54 +690,37 @@ public class GAlignFrame extends JInternalFrame overviewMenuItem_actionPerformed(e); } }); + undoMenuItem.setEnabled(false); undoMenuItem.setText(MessageManager.getString("action.undo")); - undoMenuItem.setAccelerator(javax.swing.KeyStroke.getKeyStroke( - java.awt.event.KeyEvent.VK_Z, Toolkit.getDefaultToolkit() - .getMenuShortcutKeyMask(), false)); - undoMenuItem.addActionListener(new java.awt.event.ActionListener() + keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_Z, + jalview.util.ShortcutKeyMaskExWrapper.getMenuShortcutKeyMaskEx(), false); + al = new ActionListener() { @Override public void actionPerformed(ActionEvent e) { undoMenuItem_actionPerformed(e); } - }); + }; + addMenuActionAndAccelerator(keyStroke, undoMenuItem, al); + redoMenuItem.setEnabled(false); redoMenuItem.setText(MessageManager.getString("action.redo")); - redoMenuItem.setAccelerator(javax.swing.KeyStroke.getKeyStroke( - java.awt.event.KeyEvent.VK_Y, Toolkit.getDefaultToolkit() - .getMenuShortcutKeyMask(), false)); - redoMenuItem.addActionListener(new java.awt.event.ActionListener() + keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_Y, + jalview.util.ShortcutKeyMaskExWrapper.getMenuShortcutKeyMaskEx(), false); + al = new ActionListener() { @Override public void actionPerformed(ActionEvent e) { redoMenuItem_actionPerformed(e); } - }); - conservationMenuItem.setText(MessageManager - .getString("action.by_conservation")); - conservationMenuItem - .addActionListener(new java.awt.event.ActionListener() - { - @Override - public void actionPerformed(ActionEvent e) - { - conservationMenuItem_actionPerformed(e); - } - }); - noColourmenuItem.setText(MessageManager.getString("label.none")); - noColourmenuItem.addActionListener(new java.awt.event.ActionListener() - { - @Override - public void actionPerformed(ActionEvent e) - { - noColourmenuItem_actionPerformed(e); - } - }); + }; + addMenuActionAndAccelerator(keyStroke, redoMenuItem, al); + wrapMenuItem.setText(MessageManager.getString("label.wrap")); - wrapMenuItem.addActionListener(new java.awt.event.ActionListener() + wrapMenuItem.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) @@ -1260,56 +728,51 @@ public class GAlignFrame extends JInternalFrame wrapMenuItem_actionPerformed(e); } }); - printMenuItem.setText(MessageManager.getString("action.print") + "..."); - printMenuItem.setAccelerator(javax.swing.KeyStroke.getKeyStroke( - java.awt.event.KeyEvent.VK_P, Toolkit.getDefaultToolkit() - .getMenuShortcutKeyMask(), false)); - printMenuItem.addActionListener(new java.awt.event.ActionListener() + + JMenuItem printMenuItem = new JMenuItem( + MessageManager.getString("action.print")); + keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_P, + jalview.util.ShortcutKeyMaskExWrapper.getMenuShortcutKeyMaskEx(), false); + al = new ActionListener() { @Override public void actionPerformed(ActionEvent e) { printMenuItem_actionPerformed(e); } - }); + }; + addMenuActionAndAccelerator(keyStroke, printMenuItem, al); + renderGapsMenuItem .setText(MessageManager.getString("action.show_gaps")); renderGapsMenuItem.setState(true); - renderGapsMenuItem - .addActionListener(new java.awt.event.ActionListener() - { - @Override - public void actionPerformed(ActionEvent e) - { - renderGapsMenuItem_actionPerformed(e); - } - }); - findMenuItem.setText(MessageManager.getString("action.find")); - findMenuItem.setAccelerator(javax.swing.KeyStroke.getKeyStroke( - java.awt.event.KeyEvent.VK_F, Toolkit.getDefaultToolkit() - .getMenuShortcutKeyMask(), false)); - findMenuItem.setToolTipText(JvSwingUtils.wrapTooltip(true, - MessageManager.getString("label.find_tip"))); - findMenuItem.addActionListener(new java.awt.event.ActionListener() + renderGapsMenuItem.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { - findMenuItem_actionPerformed(e); + renderGapsMenuItem_actionPerformed(e); } }); - abovePIDThreshold.setText(MessageManager - .getString("label.above_identity_threshold")); - abovePIDThreshold.addActionListener(new java.awt.event.ActionListener() + + JMenuItem findMenuItem = new JMenuItem( + MessageManager.getString("action.find")); + keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_F, + jalview.util.ShortcutKeyMaskExWrapper.getMenuShortcutKeyMaskEx(), false); + findMenuItem.setToolTipText(JvSwingUtils.wrapTooltip(true, + MessageManager.getString("label.find_tip"))); + al = new ActionListener() { @Override public void actionPerformed(ActionEvent e) { - abovePIDThreshold_actionPerformed(e); + findMenuItem_actionPerformed(e); } - }); - showSeqFeatures.setText(MessageManager - .getString("label.show_sequence_features")); + }; + addMenuActionAndAccelerator(keyStroke, findMenuItem, al); + + showSeqFeatures.setText( + MessageManager.getString("label.show_sequence_features")); showSeqFeatures.addActionListener(new ActionListener() { @Override @@ -1324,8 +787,8 @@ public class GAlignFrame extends JInternalFrame * void actionPerformed(ActionEvent actionEvent) { * showSeqFeaturesHeight_actionPerformed(actionEvent); } }); */ - showDbRefsMenuitem.setText(MessageManager - .getString("label.show_database_refs")); + showDbRefsMenuitem + .setText(MessageManager.getString("label.show_database_refs")); showDbRefsMenuitem.addActionListener(new ActionListener() { @@ -1336,8 +799,8 @@ public class GAlignFrame extends JInternalFrame } }); - showNpFeatsMenuitem.setText(MessageManager - .getString("label.show_non_positional_features")); + showNpFeatsMenuitem.setText( + MessageManager.getString("label.show_non_positional_features")); showNpFeatsMenuitem.addActionListener(new ActionListener() { @@ -1348,8 +811,8 @@ public class GAlignFrame extends JInternalFrame } }); - showGroupConservation.setText(MessageManager - .getString("label.group_conservation")); + showGroupConservation + .setText(MessageManager.getString("label.group_conservation")); showGroupConservation.addActionListener(new ActionListener() { @@ -1361,8 +824,8 @@ public class GAlignFrame extends JInternalFrame }); - showGroupConsensus.setText(MessageManager - .getString("label.group_consensus")); + showGroupConsensus + .setText(MessageManager.getString("label.group_consensus")); showGroupConsensus.addActionListener(new ActionListener() { @@ -1373,8 +836,8 @@ public class GAlignFrame extends JInternalFrame } }); - showConsensusHistogram.setText(MessageManager - .getString("label.show_consensus_histogram")); + showConsensusHistogram.setText( + MessageManager.getString("label.show_consensus_histogram")); showConsensusHistogram.addActionListener(new ActionListener() { @@ -1385,8 +848,8 @@ public class GAlignFrame extends JInternalFrame } }); - showSequenceLogo.setText(MessageManager - .getString("label.show_consensus_logo")); + showSequenceLogo + .setText(MessageManager.getString("label.show_consensus_logo")); showSequenceLogo.addActionListener(new ActionListener() { @@ -1397,8 +860,8 @@ public class GAlignFrame extends JInternalFrame } }); - normaliseSequenceLogo.setText(MessageManager - .getString("label.norm_consensus_logo")); + normaliseSequenceLogo + .setText(MessageManager.getString("label.norm_consensus_logo")); normaliseSequenceLogo.addActionListener(new ActionListener() { @@ -1409,8 +872,8 @@ public class GAlignFrame extends JInternalFrame } }); - applyAutoAnnotationSettings.setText(MessageManager - .getString("label.apply_all_groups")); + applyAutoAnnotationSettings + .setText(MessageManager.getString("label.apply_all_groups")); applyAutoAnnotationSettings.setState(false); applyAutoAnnotationSettings.setVisible(true); applyAutoAnnotationSettings.addActionListener(new ActionListener() @@ -1423,12 +886,16 @@ public class GAlignFrame extends JInternalFrame }); ButtonGroup buttonGroup = new ButtonGroup(); + final JRadioButtonMenuItem showAutoFirst = new JRadioButtonMenuItem( + MessageManager.getString("label.show_first")); + final JRadioButtonMenuItem showAutoLast = new JRadioButtonMenuItem( + MessageManager.getString("label.show_last")); buttonGroup.add(showAutoFirst); buttonGroup.add(showAutoLast); - showAutoFirst.setText(MessageManager.getString("label.show_first")); - showAutoFirst.setSelected(Cache.getDefault( - Preferences.SHOW_AUTOCALC_ABOVE, - false)); + final boolean autoFirst = Cache + .getDefault(Preferences.SHOW_AUTOCALC_ABOVE, false); + showAutoFirst.setSelected(autoFirst); + setShowAutoCalculatedAbove(autoFirst); showAutoFirst.addActionListener(new ActionListener() { @Override @@ -1438,7 +905,6 @@ public class GAlignFrame extends JInternalFrame sortAnnotations_actionPerformed(); } }); - showAutoLast.setText(MessageManager.getString("label.show_last")); showAutoLast.setSelected(!showAutoFirst.isSelected()); showAutoLast.addActionListener(new ActionListener() { @@ -1450,193 +916,198 @@ public class GAlignFrame extends JInternalFrame } }); - nucleotideColour.setText(MessageManager.getString("label.nucleotide")); - nucleotideColour.addActionListener(new java.awt.event.ActionListener() + JMenuItem deleteGroups = new JMenuItem( + MessageManager.getString("action.undefine_groups")); + keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_U, + jalview.util.ShortcutKeyMaskExWrapper.getMenuShortcutKeyMaskEx(), false); + al = new ActionListener() { @Override public void actionPerformed(ActionEvent e) { - nucleotideColour_actionPerformed(e); + deleteGroups_actionPerformed(e); } - }); + }; + addMenuActionAndAccelerator(keyStroke, deleteGroups, al); - tcoffeeColour.setText(MessageManager.getString("label.tcoffee_scores")); - tcoffeeColour.setEnabled(false); - tcoffeeColour.addActionListener(new ActionListener() + JMenuItem annotationColumn = new JMenuItem( + MessageManager.getString("action.select_by_annotation")); + annotationColumn.addActionListener(new ActionListener() { - @Override public void actionPerformed(ActionEvent e) { - tcoffeeColorScheme_actionPerformed(e); + annotationColumn_actionPerformed(e); } }); - deleteGroups - .setText(MessageManager.getString("action.undefine_groups")); - deleteGroups.setAccelerator(javax.swing.KeyStroke.getKeyStroke( - java.awt.event.KeyEvent.VK_U, Toolkit.getDefaultToolkit() - .getMenuShortcutKeyMask(), false)); - deleteGroups.addActionListener(new java.awt.event.ActionListener() - { - @Override - public void actionPerformed(ActionEvent e) - { - deleteGroups_actionPerformed(e); - } - }); - createGroup.setText(MessageManager.getString("action.create_groups")); - createGroup.setAccelerator(javax.swing.KeyStroke.getKeyStroke( - java.awt.event.KeyEvent.VK_G, Toolkit.getDefaultToolkit() - .getMenuShortcutKeyMask(), false)); - createGroup.addActionListener(new java.awt.event.ActionListener() + JMenuItem createGroup = new JMenuItem( + MessageManager.getString("action.create_group")); + keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_G, + jalview.util.ShortcutKeyMaskExWrapper.getMenuShortcutKeyMaskEx(), false); + al = new ActionListener() { @Override public void actionPerformed(ActionEvent e) { createGroup_actionPerformed(e); } - }); - unGroup.setText(MessageManager.getString("action.remove_group")); - unGroup.setAccelerator(javax.swing.KeyStroke.getKeyStroke( - java.awt.event.KeyEvent.VK_G, Toolkit.getDefaultToolkit() - .getMenuShortcutKeyMask() - | java.awt.event.KeyEvent.SHIFT_MASK, false)); - unGroup.addActionListener(new java.awt.event.ActionListener() + }; + addMenuActionAndAccelerator(keyStroke, createGroup, al); + + JMenuItem unGroup = new JMenuItem( + MessageManager.getString("action.remove_group")); + keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_G, + jalview.util.ShortcutKeyMaskExWrapper.getMenuShortcutKeyMaskEx() + | jalview.util.ShortcutKeyMaskExWrapper.SHIFT_DOWN_MASK, + false); + al = new ActionListener() { @Override public void actionPerformed(ActionEvent e) { unGroup_actionPerformed(e); } - }); + }; + addMenuActionAndAccelerator(keyStroke, unGroup, al); + copy.setText(MessageManager.getString("action.copy")); - copy.setAccelerator(javax.swing.KeyStroke.getKeyStroke( - java.awt.event.KeyEvent.VK_C, Toolkit.getDefaultToolkit() - .getMenuShortcutKeyMask(), false)); + keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_C, + jalview.util.ShortcutKeyMaskExWrapper.getMenuShortcutKeyMaskEx(), false); - copy.addActionListener(new java.awt.event.ActionListener() + al = new ActionListener() { @Override public void actionPerformed(ActionEvent e) { - copy_actionPerformed(e); + copy_actionPerformed(); } - }); + }; + addMenuActionAndAccelerator(keyStroke, copy, al); + cut.setText(MessageManager.getString("action.cut")); - cut.setAccelerator(javax.swing.KeyStroke.getKeyStroke( - java.awt.event.KeyEvent.VK_X, Toolkit.getDefaultToolkit() - .getMenuShortcutKeyMask(), false)); - cut.addActionListener(new java.awt.event.ActionListener() + keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_X, + jalview.util.ShortcutKeyMaskExWrapper.getMenuShortcutKeyMaskEx(), false); + al = new ActionListener() { @Override public void actionPerformed(ActionEvent e) { - cut_actionPerformed(e); + cut_actionPerformed(); } - }); - delete.setText(MessageManager.getString("action.delete")); - delete.addActionListener(new java.awt.event.ActionListener() + }; + addMenuActionAndAccelerator(keyStroke, cut, al); + + JMenuItem delete = new JMenuItem( + MessageManager.getString("action.delete")); + delete.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { - delete_actionPerformed(e); + delete_actionPerformed(); } }); + pasteMenu.setText(MessageManager.getString("action.paste")); - pasteNew.setText(MessageManager.getString("label.to_new_alignment")); - pasteNew.setAccelerator(javax.swing.KeyStroke.getKeyStroke( - java.awt.event.KeyEvent.VK_V, Toolkit.getDefaultToolkit() - .getMenuShortcutKeyMask() - | java.awt.event.KeyEvent.SHIFT_MASK, false)); - pasteNew.addActionListener(new java.awt.event.ActionListener() + JMenuItem pasteNew = new JMenuItem( + MessageManager.getString("label.to_new_alignment")); + keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_V, + jalview.util.ShortcutKeyMaskExWrapper.getMenuShortcutKeyMaskEx() + | jalview.util.ShortcutKeyMaskExWrapper.SHIFT_DOWN_MASK, + false); + al = new ActionListener() { @Override public void actionPerformed(ActionEvent e) { pasteNew_actionPerformed(e); } - }); - pasteThis.setText(MessageManager.getString("label.to_this_alignment")); - pasteThis.setAccelerator(javax.swing.KeyStroke.getKeyStroke( - java.awt.event.KeyEvent.VK_V, Toolkit.getDefaultToolkit() - .getMenuShortcutKeyMask(), false)); - pasteThis.addActionListener(new java.awt.event.ActionListener() + }; + addMenuActionAndAccelerator(keyStroke, pasteNew, al); + + JMenuItem pasteThis = new JMenuItem( + MessageManager.getString("label.to_this_alignment")); + keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_V, + jalview.util.ShortcutKeyMaskExWrapper.getMenuShortcutKeyMaskEx(), false); + al = new ActionListener() { @Override public void actionPerformed(ActionEvent e) { pasteThis_actionPerformed(e); } - }); - applyToAllGroups.setText(MessageManager - .getString("label.apply_colour_to_all_groups")); - applyToAllGroups.addActionListener(new java.awt.event.ActionListener() + }; + addMenuActionAndAccelerator(keyStroke, pasteThis, al); + + JMenuItem createPNG = new JMenuItem("PNG"); + createPNG.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { - applyToAllGroups_actionPerformed(e); + createPNG(null); } }); - createPNG.addActionListener(new java.awt.event.ActionListener() + createPNG.setActionCommand( + MessageManager.getString("label.save_png_image")); + + JMenuItem font = new JMenuItem(MessageManager.getString("action.font")); + font.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { - createPNG(null); + font_actionPerformed(e); } }); - createPNG.setActionCommand(MessageManager - .getString("label.save_png_image")); - createPNG.setText("PNG"); - font.setText(MessageManager.getString("action.font")); - font.addActionListener(new java.awt.event.ActionListener() + seqLimits.setText( + MessageManager.getString("label.show_sequence_limits")); + seqLimits.setState(Cache.getDefault("SHOW_JVSUFFIX", true)); + seqLimits.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { - font_actionPerformed(e); + seqLimit_actionPerformed(e); } }); - - seqLimits.setText(MessageManager - .getString("label.show_sequence_limits")); - seqLimits.setState(jalview.bin.Cache.getDefault("SHOW_JVSUFFIX", true)); - seqLimits.addActionListener(new java.awt.event.ActionListener() + JMenuItem epsFile = new JMenuItem("EPS"); + epsFile.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { - seqLimit_actionPerformed(e); + createEPS(null); } }); - epsFile.setText("EPS"); - epsFile.addActionListener(new java.awt.event.ActionListener() + + JMenuItem createSVG = new JMenuItem("SVG"); + createSVG.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { - createEPS(null); + createSVG(null); } }); - LoadtreeMenuItem.setActionCommand(MessageManager - .getString("label.load_tree_for_sequence_set")); - LoadtreeMenuItem.setText(MessageManager - .getString("label.load_associated_tree")); - LoadtreeMenuItem.addActionListener(new java.awt.event.ActionListener() + + JMenuItem loadTreeMenuItem = new JMenuItem( + MessageManager.getString("label.load_associated_tree")); + loadTreeMenuItem.setActionCommand( + MessageManager.getString("label.load_tree_for_sequence_set")); + loadTreeMenuItem.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { - LoadtreeMenuItem_actionPerformed(e); + loadTreeMenuItem_actionPerformed(e); } }); scaleAbove.setVisible(false); scaleAbove.setText(MessageManager.getString("action.scale_above")); - scaleAbove.addActionListener(new java.awt.event.ActionListener() + scaleAbove.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) @@ -1647,7 +1118,7 @@ public class GAlignFrame extends JInternalFrame scaleLeft.setVisible(false); scaleLeft.setSelected(true); scaleLeft.setText(MessageManager.getString("action.scale_left")); - scaleLeft.addActionListener(new java.awt.event.ActionListener() + scaleLeft.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) @@ -1658,7 +1129,7 @@ public class GAlignFrame extends JInternalFrame scaleRight.setVisible(false); scaleRight.setSelected(true); scaleRight.setText(MessageManager.getString("action.scale_right")); - scaleRight.addActionListener(new java.awt.event.ActionListener() + scaleRight.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) @@ -1668,21 +1139,20 @@ public class GAlignFrame extends JInternalFrame }); centreColumnLabelsMenuItem.setVisible(true); centreColumnLabelsMenuItem.setState(false); - centreColumnLabelsMenuItem.setText(MessageManager - .getString("label.centre_column_labels")); - centreColumnLabelsMenuItem - .addActionListener(new java.awt.event.ActionListener() - { - @Override - public void actionPerformed(ActionEvent e) - { - centreColumnLabels_actionPerformed(e); - } - }); + centreColumnLabelsMenuItem.setText( + MessageManager.getString("label.centre_column_labels")); + centreColumnLabelsMenuItem.addActionListener(new ActionListener() + { + @Override + public void actionPerformed(ActionEvent e) + { + centreColumnLabels_actionPerformed(e); + } + }); followHighlightMenuItem.setVisible(true); followHighlightMenuItem.setState(true); - followHighlightMenuItem.setText(MessageManager - .getString("label.automatic_scrolling")); + followHighlightMenuItem + .setText(MessageManager.getString("label.automatic_scrolling")); followHighlightMenuItem.addActionListener(new ActionListener() { @@ -1694,27 +1164,6 @@ public class GAlignFrame extends JInternalFrame }); - modifyPID.setText(MessageManager - .getString("label.modify_identity_thereshold")); - modifyPID.addActionListener(new java.awt.event.ActionListener() - { - @Override - public void actionPerformed(ActionEvent e) - { - modifyPID_actionPerformed(e); - } - }); - modifyConservation.setText(MessageManager - .getString("label.modify_conservation_thereshold")); - modifyConservation - .addActionListener(new java.awt.event.ActionListener() - { - @Override - public void actionPerformed(ActionEvent e) - { - modifyConservation_actionPerformed(e); - } - }); sortByTreeMenu .setText(MessageManager.getString("action.by_tree_order")); sort.setText(MessageManager.getString("action.sort")); @@ -1723,7 +1172,7 @@ public class GAlignFrame extends JInternalFrame @Override public void menuSelected(MenuEvent e) { - buildTreeMenu(); + buildTreeSortMenu(); } @Override @@ -1736,10 +1185,10 @@ public class GAlignFrame extends JInternalFrame { } }); - sortByAnnotScore.setText(MessageManager - .getString("label.sort_by_score")); + sortByAnnotScore + .setText(MessageManager.getString("label.sort_by_score")); sort.add(sortByAnnotScore); - sortByAnnotScore.addMenuListener(new javax.swing.event.MenuListener() + sort.addMenuListener(new javax.swing.event.MenuListener() { @Override @@ -1761,12 +1210,11 @@ public class GAlignFrame extends JInternalFrame sortByAnnotScore.setVisible(false); calculateTree - .setText(MessageManager.getString("action.calculate_tree")); + .setText(MessageManager.getString("action.calculate_tree_pca")); - jMenu2.setText(MessageManager.getString("label.export_image")); padGapsMenuitem.setText(MessageManager.getString("label.pad_gaps")); - padGapsMenuitem.setState(jalview.bin.Cache - .getDefault("PAD_GAPS", false)); + padGapsMenuitem + .setState(Cache.getDefault("PAD_GAPS", false)); padGapsMenuitem.addActionListener(new ActionListener() { @Override @@ -1775,8 +1223,9 @@ public class GAlignFrame extends JInternalFrame padGapsMenuitem_actionPerformed(e); } }); + JMenuItem vamsasStore = new JMenuItem( + MessageManager.getString("label.vamsas_store")); vamsasStore.setVisible(false); - vamsasStore.setText(MessageManager.getString("label.vamsas_store")); vamsasStore.addActionListener(new ActionListener() { @Override @@ -1785,80 +1234,108 @@ public class GAlignFrame extends JInternalFrame vamsasStore_actionPerformed(e); } }); - showTranslation.setText(MessageManager - .getString("label.translate_cDNA")); - showTranslation.addActionListener(new ActionListener() + + /* + * Translate as cDNA with sub-menu of translation tables + */ + showTranslation + .setText(MessageManager.getString("label.translate_cDNA")); + boolean first = true; + for (final GeneticCodeI table : GeneticCodes.getInstance() + .getCodeTables()) + { + JMenuItem item = new JMenuItem(table.getId() + " " + table.getName()); + showTranslation.add(item); + item.addActionListener(new ActionListener() + { + @Override + public void actionPerformed(ActionEvent e) + { + showTranslation_actionPerformed(table); + } + }); + if (first) + { + showTranslation.addSeparator(); + } + first = false; + } + + showReverse.setText(MessageManager.getString("label.reverse")); + showReverse.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { - showTranslation_actionPerformed(e); + showReverse_actionPerformed(false); } }); - extractScores.setText(MessageManager.getString("label.extract_scores") - + "..."); - extractScores.addActionListener(new ActionListener() + showReverseComplement + .setText(MessageManager.getString("label.reverse_complement")); + showReverseComplement.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { - extractScores_actionPerformed(e); + showReverse_actionPerformed(true); } }); - extractScores.setVisible(true); // JBPNote: TODO: make gui for regex based - // score extraction - showProducts.setText(MessageManager.getString("label.get_cross_refs")); - /* - * showProducts.addActionListener(new ActionListener() { - * - * public void actionPerformed(ActionEvent e) { - * showProducts_actionPerformed(e); } }); - */ - openFeatureSettings.setText(MessageManager - .getString("label.feature_settings")); - openFeatureSettings.addActionListener(new ActionListener() + + JMenuItem extractScores = new JMenuItem( + MessageManager.getString("label.extract_scores")); + extractScores.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { - featureSettings_actionPerformed(e); + extractScores_actionPerformed(e); } }); - fetchSequence - .setText(MessageManager.getString("label.fetch_sequences")); - fetchSequence.addActionListener(new ActionListener() + extractScores.setVisible(true); + // JBPNote: TODO: make gui for regex based score extraction + + // for show products actions see AlignFrame.canShowProducts + showProducts.setText(MessageManager.getString("label.get_cross_refs")); + + runGroovy.setText(MessageManager.getString("label.run_groovy")); + runGroovy.setToolTipText( + MessageManager.getString("label.run_groovy_tip")); + runGroovy.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { - fetchSequence_actionPerformed(e); + runGroovy_actionPerformed(); } }); - annotationColour.setText(MessageManager - .getString("action.by_annotation")); - annotationColour.addActionListener(new ActionListener() + openFeatureSettings = new JMenuItem( + MessageManager.getString("action.feature_settings")); + openFeatureSettings.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { - annotationColour_actionPerformed(e); + featureSettings_actionPerformed(e); } }); - rnahelicesColour.setText(MessageManager - .getString("action.by_rna_helixes")); - rnahelicesColour.addActionListener(new ActionListener() + /* + * add sub-menu of database we can fetch from + */ + JMenuItem fetchSequence = new JMenuItem( + MessageManager.getString("label.fetch_sequences")); + fetchSequence.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { - rnahelicesColour_actionPerformed(e); + fetchSequence_actionPerformed(); } }); - associatedData.setText(MessageManager - .getString("label.load_features_annotations")); + JMenuItem associatedData = new JMenuItem( + MessageManager.getString("label.load_features_annotations")); associatedData.addActionListener(new ActionListener() { @Override @@ -1867,10 +1344,21 @@ public class GAlignFrame extends JInternalFrame associatedData_actionPerformed(e); } }); - autoCalculate.setText(MessageManager - .getString("label.autocalculate_consensus")); - autoCalculate.setState(jalview.bin.Cache.getDefault( - "AUTO_CALC_CONSENSUS", true)); + loadVcf = new JMenuItem( + MessageManager.getString("label.load_vcf_file")); + loadVcf.setToolTipText(MessageManager.getString("label.load_vcf")); + loadVcf.addActionListener(new ActionListener() + { + @Override + public void actionPerformed(ActionEvent e) + { + loadVcf_actionPerformed(); + } + }); + autoCalculate.setText( + MessageManager.getString("label.autocalculate_consensus")); + autoCalculate.setState( + Cache.getDefault("AUTO_CALC_CONSENSUS", true)); autoCalculate.addActionListener(new ActionListener() { @Override @@ -1879,14 +1367,12 @@ public class GAlignFrame extends JInternalFrame autoCalculate_actionPerformed(e); } }); - sortByTree.setText(MessageManager - .getString("label.sort_alignment_new_tree")); - sortByTree - .setToolTipText("" - + MessageManager - .getString("label.enable_automatically_sort_alignment_when_open_new_tree")); + sortByTree.setText( + MessageManager.getString("label.sort_alignment_new_tree")); + sortByTree.setToolTipText("" + MessageManager.getString( + "label.enable_automatically_sort_alignment_when_open_new_tree")); sortByTree - .setState(jalview.bin.Cache.getDefault("SORT_BY_TREE", false)); + .setState(Cache.getDefault("SORT_BY_TREE", false)); sortByTree.addActionListener(new ActionListener() { @Override @@ -1896,12 +1382,11 @@ public class GAlignFrame extends JInternalFrame } }); - listenToViewSelections.setText(MessageManager - .getString("label.listen_for_selections")); + listenToViewSelections.setText( + MessageManager.getString("label.listen_for_selections")); listenToViewSelections - .setToolTipText("" - + MessageManager - .getString("label.selections_mirror_selections_made_same_sequences_other_views")); + .setToolTipText("" + MessageManager.getString( + "label.selections_mirror_selections_made_same_sequences_other_views")); listenToViewSelections.setState(false); listenToViewSelections.addActionListener(new ActionListener() { @@ -1912,9 +1397,10 @@ public class GAlignFrame extends JInternalFrame } }); - addSequenceMenu - .setText(MessageManager.getString("label.add_sequences")); - addFromFile.setText(MessageManager.getString("label.from_file")); + JMenu addSequenceMenu = new JMenu( + MessageManager.getString("label.add_sequences")); + JMenuItem addFromFile = new JMenuItem( + MessageManager.getString("label.from_file")); addFromFile.addActionListener(new ActionListener() { @Override @@ -1923,7 +1409,8 @@ public class GAlignFrame extends JInternalFrame addFromFile_actionPerformed(e); } }); - addFromText.setText(MessageManager.getString("label.from_textbox")); + JMenuItem addFromText = new JMenuItem( + MessageManager.getString("label.from_textbox")); addFromText.addActionListener(new ActionListener() { @Override @@ -1932,7 +1419,8 @@ public class GAlignFrame extends JInternalFrame addFromText_actionPerformed(e); } }); - addFromURL.setText(MessageManager.getString("label.from_url")); + JMenuItem addFromURL = new JMenuItem( + MessageManager.getString("label.from_url")); addFromURL.addActionListener(new ActionListener() { @Override @@ -1941,8 +1429,8 @@ public class GAlignFrame extends JInternalFrame addFromURL_actionPerformed(e); } }); - exportFeatures.setText(MessageManager - .getString("label.export_features")); + JMenuItem exportFeatures = new JMenuItem( + MessageManager.getString("label.export_features")); exportFeatures.addActionListener(new ActionListener() { @Override @@ -1951,8 +1439,8 @@ public class GAlignFrame extends JInternalFrame exportFeatures_actionPerformed(e); } }); - exportAnnotations.setText(MessageManager - .getString("label.export_annotations")); + JMenuItem exportAnnotations = new JMenuItem( + MessageManager.getString("label.export_annotations")); exportAnnotations.addActionListener(new ActionListener() { @Override @@ -1961,11 +1449,11 @@ public class GAlignFrame extends JInternalFrame exportAnnotations_actionPerformed(e); } }); - statusPanel.setLayout(gridLayout1); - jMenu3.setText(MessageManager.getString("action.show")); - showAllSeqs.setText(MessageManager.getString("label.all_sequences")); - showAllSeqs.setToolTipText(MessageManager - .getString("label.toggle_sequence_visibility")); + statusPanel.setLayout(new GridLayout()); + JMenuItem showAllSeqs = new JMenuItem( + MessageManager.getString("label.all_sequences")); + showAllSeqs.setToolTipText( + MessageManager.getString("label.toggle_sequence_visibility")); showAllSeqs.addActionListener(new ActionListener() { @Override @@ -1974,9 +1462,10 @@ public class GAlignFrame extends JInternalFrame showAllSeqs_actionPerformed(e); } }); - showAllColumns.setText(MessageManager.getString("label.all_columns")); - showAllColumns.setToolTipText(MessageManager - .getString("label.toggle_columns_visibility")); + JMenuItem showAllColumns = new JMenuItem( + MessageManager.getString("label.all_columns")); + showAllColumns.setToolTipText( + MessageManager.getString("label.toggle_columns_visibility")); showAllColumns.addActionListener(new ActionListener() { @Override @@ -1985,11 +1474,11 @@ public class GAlignFrame extends JInternalFrame showAllColumns_actionPerformed(e); } }); - hideMenu.setText(MessageManager.getString("action.hide")); - hideSelSequences.setText(MessageManager - .getString("label.selected_sequences")); - hideSelSequences.setToolTipText(MessageManager - .getString("label.toggle_sequence_visibility")); + JMenu hideMenu = new JMenu(MessageManager.getString("action.hide")); + JMenuItem hideSelSequences = new JMenuItem( + MessageManager.getString("label.selected_sequences")); + hideSelSequences.setToolTipText( + MessageManager.getString("label.toggle_sequence_visibility")); hideSelSequences.addActionListener(new ActionListener() { @Override @@ -1998,10 +1487,10 @@ public class GAlignFrame extends JInternalFrame hideSelSequences_actionPerformed(e); } }); - hideSelColumns.setText(MessageManager - .getString("label.selected_columns")); - hideSelColumns.setToolTipText(MessageManager - .getString("label.toggle_columns_visibility")); + JMenuItem hideSelColumns = new JMenuItem( + MessageManager.getString("label.selected_columns")); + hideSelColumns.setToolTipText( + MessageManager.getString("label.toggle_columns_visibility")); hideSelColumns.addActionListener(new ActionListener() { @Override @@ -2010,8 +1499,8 @@ public class GAlignFrame extends JInternalFrame hideSelColumns_actionPerformed(e); } }); - hideAllSelection.setText(MessageManager - .getString("label.selected_region")); + JMenuItem hideAllSelection = new JMenuItem( + MessageManager.getString("label.selected_region")); hideAllSelection.addActionListener(new ActionListener() { @Override @@ -2021,8 +1510,8 @@ public class GAlignFrame extends JInternalFrame } }); // TODO: should be hidden if no selection exists. - hideAllButSelection.setText(MessageManager - .getString("label.all_but_selected_region")); + JMenuItem hideAllButSelection = new JMenuItem( + MessageManager.getString("label.all_but_selected_region")); hideAllButSelection.addActionListener(new ActionListener() { @Override @@ -2031,8 +1520,8 @@ public class GAlignFrame extends JInternalFrame hideAllButSelection_actionPerformed(e); } }); - showAllhidden.setText(MessageManager - .getString("label.all_sequences_columns")); + JMenuItem showAllhidden = new JMenuItem( + MessageManager.getString("label.all_sequences_columns")); showAllhidden.setToolTipText(MessageManager .getString("label.toggles_visibility_hidden_selected_regions")); showAllhidden.addActionListener(new ActionListener() @@ -2043,8 +1532,8 @@ public class GAlignFrame extends JInternalFrame showAllhidden_actionPerformed(e); } }); - hiddenMarkers.setText(MessageManager - .getString("action.show_hidden_markers")); + hiddenMarkers.setText( + MessageManager.getString("action.show_hidden_markers")); hiddenMarkers.addActionListener(new ActionListener() { @Override @@ -2053,20 +1542,33 @@ public class GAlignFrame extends JInternalFrame hiddenMarkers_actionPerformed(e); } }); - invertColSel.setText(MessageManager - .getString("action.invert_column_selection")); - invertColSel.setAccelerator(javax.swing.KeyStroke.getKeyStroke( - java.awt.event.KeyEvent.VK_I, Toolkit.getDefaultToolkit() - .getMenuShortcutKeyMask() - | java.awt.event.KeyEvent.ALT_MASK, false)); - invertColSel.addActionListener(new ActionListener() + + JMenuItem invertColSel = new JMenuItem( + MessageManager.getString("action.invert_column_selection")); + keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_I, + jalview.util.ShortcutKeyMaskExWrapper.getMenuShortcutKeyMaskEx() + | jalview.util.ShortcutKeyMaskExWrapper.ALT_DOWN_MASK, + false); + al = new ActionListener() { @Override public void actionPerformed(ActionEvent e) { invertColSel_actionPerformed(e); } + }; + addMenuActionAndAccelerator(keyStroke, invertColSel, al); + + showComplementMenuItem.setVisible(false); + showComplementMenuItem.addActionListener(new ActionListener() + { + @Override + public void actionPerformed(ActionEvent e) + { + showComplement_actionPerformed(showComplementMenuItem.getState()); + } }); + tabbedPane.addChangeListener(new javax.swing.event.ChangeListener() { @Override @@ -2082,7 +1584,19 @@ public class GAlignFrame extends JInternalFrame @Override public void mousePressed(MouseEvent e) { - tabbedPane_mousePressed(e); + if (e.isPopupTrigger()) // Mac + { + tabbedPane_mousePressed(e); + } + } + + @Override + public void mouseReleased(MouseEvent e) + { + if (e.isPopupTrigger()) // Windows + { + tabbedPane_mousePressed(e); + } } }); tabbedPane.addFocusListener(new FocusAdapter() @@ -2093,18 +1607,20 @@ public class GAlignFrame extends JInternalFrame tabbedPane_focusGained(e); } }); - save.setText(MessageManager.getString("action.save")); - save.setAccelerator(javax.swing.KeyStroke.getKeyStroke( - java.awt.event.KeyEvent.VK_S, Toolkit.getDefaultToolkit() - .getMenuShortcutKeyMask(), false)); - save.addActionListener(new ActionListener() + + JMenuItem save = new JMenuItem(MessageManager.getString("action.save")); + keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_S, + jalview.util.ShortcutKeyMaskExWrapper.getMenuShortcutKeyMaskEx(), false); + al = new ActionListener() { @Override public void actionPerformed(ActionEvent e) { save_actionPerformed(e); } - }); + }; + addMenuActionAndAccelerator(keyStroke, save, al); + reload.setEnabled(false); reload.setText(MessageManager.getString("action.reload")); reload.addActionListener(new ActionListener() @@ -2115,35 +1631,30 @@ public class GAlignFrame extends JInternalFrame reload_actionPerformed(e); } }); - newView.setText(MessageManager.getString("action.new_view")); - newView.setAccelerator(javax.swing.KeyStroke.getKeyStroke( - java.awt.event.KeyEvent.VK_T, Toolkit.getDefaultToolkit() - .getMenuShortcutKeyMask(), false)); - newView.addActionListener(new ActionListener() + + JMenuItem newView = new JMenuItem( + MessageManager.getString("action.new_view")); + keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_T, + jalview.util.ShortcutKeyMaskExWrapper.getMenuShortcutKeyMaskEx(), false); + al = new ActionListener() { @Override public void actionPerformed(ActionEvent e) { newView_actionPerformed(e); } - }); + }; + addMenuActionAndAccelerator(keyStroke, newView, al); + tabbedPane.setToolTipText("" + MessageManager.getString("label.rename_tab_eXpand_reGroup") + ""); - textColour.setText(MessageManager.getString("label.colour_text") - + "..."); - textColour.addActionListener(new ActionListener() - { - @Override - public void actionPerformed(ActionEvent e) - { - textColour_actionPerformed(e); - } - }); + formatMenu.setText(MessageManager.getString("action.format")); - selectMenu.setText(MessageManager.getString("action.select")); - idRightAlign.setText(MessageManager - .getString("label.right_align_sequence_id")); + JMenu selectMenu = new JMenu(MessageManager.getString("action.select")); + + idRightAlign.setText( + MessageManager.getString("label.right_align_sequence_id")); idRightAlign.addActionListener(new ActionListener() { @Override @@ -2152,32 +1663,35 @@ public class GAlignFrame extends JInternalFrame idRightAlign_actionPerformed(e); } }); + gatherViews.setEnabled(false); gatherViews.setText(MessageManager.getString("action.gather_views")); - gatherViews.setAccelerator(javax.swing.KeyStroke.getKeyStroke( - java.awt.event.KeyEvent.VK_G, 0, false)); - gatherViews.addActionListener(new ActionListener() + keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_G, 0, false); + al = new ActionListener() { @Override public void actionPerformed(ActionEvent e) { gatherViews_actionPerformed(e); } - }); + }; + addMenuActionAndAccelerator(keyStroke, gatherViews, al); + expandViews.setEnabled(false); expandViews.setText(MessageManager.getString("action.expand_views")); - expandViews.setAccelerator(javax.swing.KeyStroke.getKeyStroke( - java.awt.event.KeyEvent.VK_X, 0, false)); - expandViews.addActionListener(new ActionListener() + keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_X, 0, false); + al = new ActionListener() { @Override public void actionPerformed(ActionEvent e) { expandViews_actionPerformed(e); } - }); - pageSetup - .setText(MessageManager.getString("action.page_setup") + "..."); + }; + addMenuActionAndAccelerator(keyStroke, expandViews, al); + + JMenuItem pageSetup = new JMenuItem( + MessageManager.getString("action.page_setup")); pageSetup.addActionListener(new ActionListener() { @Override @@ -2186,20 +1700,37 @@ public class GAlignFrame extends JInternalFrame pageSetup_actionPerformed(e); } }); - alignmentProperties.setText(MessageManager - .getString("label.alignment_props") + "..."); - alignmentProperties.addActionListener(new ActionListener() + JMenuItem alignmentProperties = new JMenuItem( + MessageManager.getString("label.alignment_props")); + alignmentProperties.addActionListener(new ActionListener() + { + @Override + public void actionPerformed(ActionEvent actionEvent) + { + alignmentProperties(); + } + }); + JMenuItem selectHighlighted = new JMenuItem( + MessageManager.getString("action.select_highlighted_columns")); + selectHighlighted.setToolTipText( + MessageManager.getString("tooltip.select_highlighted_columns")); + al = new ActionListener() { @Override public void actionPerformed(ActionEvent actionEvent) { - alignmentProperties(); + selectHighlightedColumns_actionPerformed(actionEvent); } - }); - tooltipSettingsMenu.setText(MessageManager - .getString("label.sequence_id_tooltip")); - autoAnnMenu.setText(MessageManager - .getString("label.autocalculated_annotation")); + }; + selectHighlighted.addActionListener(al); + JMenu tooltipSettingsMenu = new JMenu( + MessageManager.getString("label.sequence_id_tooltip")); + JMenu autoAnnMenu = new JMenu( + MessageManager.getString("label.autocalculated_annotation")); + + JMenu exportImageMenu = new JMenu( + MessageManager.getString("label.export_image")); + JMenu fileMenu = new JMenu(MessageManager.getString("action.file")); alignFrameMenuBar.add(fileMenu); alignFrameMenuBar.add(editMenu); alignFrameMenuBar.add(selectMenu); @@ -2208,7 +1739,11 @@ public class GAlignFrame extends JInternalFrame alignFrameMenuBar.add(formatMenu); alignFrameMenuBar.add(colourMenu); alignFrameMenuBar.add(calculateMenu); - alignFrameMenuBar.add(webService); + if (!Platform.isJS()) + { + alignFrameMenuBar.add(webService); + } + fileMenu.add(fetchSequence); fileMenu.add(addSequenceMenu); fileMenu.add(reload); @@ -2220,13 +1755,20 @@ public class GAlignFrame extends JInternalFrame fileMenu.add(pageSetup); fileMenu.add(printMenuItem); fileMenu.addSeparator(); - fileMenu.add(jMenu2); + fileMenu.add(exportImageMenu); fileMenu.add(exportFeatures); fileMenu.add(exportAnnotations); - fileMenu.add(LoadtreeMenuItem); + fileMenu.add(loadTreeMenuItem); fileMenu.add(associatedData); + if (!Platform.isJS()) + { + fileMenu.add(loadVcf); + } fileMenu.addSeparator(); fileMenu.add(closeMenuItem); + + pasteMenu.add(pasteNew); + pasteMenu.add(pasteThis); editMenu.add(undoMenuItem); editMenu.add(redoMenuItem); editMenu.add(cut); @@ -2246,14 +1788,35 @@ public class GAlignFrame extends JInternalFrame // editMenu.add(justifyRightMenuItem); // editMenu.addSeparator(); editMenu.add(padGapsMenuitem); + + showMenu.add(showAllColumns); + showMenu.add(showAllSeqs); + showMenu.add(showAllhidden); + hideMenu.add(hideSelColumns); + hideMenu.add(hideSelSequences); + hideMenu.add(hideAllSelection); + hideMenu.add(hideAllButSelection); viewMenu.add(newView); viewMenu.add(expandViews); viewMenu.add(gatherViews); viewMenu.addSeparator(); - viewMenu.add(jMenu3); + viewMenu.add(showMenu); viewMenu.add(hideMenu); + viewMenu.add(showComplementMenuItem); viewMenu.addSeparator(); viewMenu.add(followHighlightMenuItem); + viewMenu.addSeparator(); + viewMenu.add(showSeqFeatures); + // viewMenu.add(showSeqFeaturesHeight); + viewMenu.add(openFeatureSettings); + tooltipSettingsMenu.add(showDbRefsMenuitem); + tooltipSettingsMenu.add(showNpFeatsMenuitem); + viewMenu.add(tooltipSettingsMenu); + viewMenu.addSeparator(); + viewMenu.add(alignmentProperties); + viewMenu.addSeparator(); + viewMenu.add(overviewMenuItem); + annotationsMenu.add(annotationPanelMenuItem); annotationsMenu.addSeparator(); annotationsMenu.add(showAllAlAnnotations); @@ -2275,83 +1838,52 @@ public class GAlignFrame extends JInternalFrame autoAnnMenu.add(showGroupConservation); autoAnnMenu.add(showGroupConsensus); annotationsMenu.add(autoAnnMenu); - viewMenu.addSeparator(); - viewMenu.add(showSeqFeatures); - // viewMenu.add(showSeqFeaturesHeight); - viewMenu.add(openFeatureSettings); - tooltipSettingsMenu.add(showDbRefsMenuitem); - tooltipSettingsMenu.add(showNpFeatsMenuitem); - viewMenu.add(tooltipSettingsMenu); - viewMenu.addSeparator(); - viewMenu.add(alignmentProperties); - viewMenu.addSeparator(); - viewMenu.add(overviewMenuItem); - colourMenu.add(applyToAllGroups); - colourMenu.add(textColour); - colourMenu.addSeparator(); - colourMenu.add(noColourmenuItem); - colourMenu.add(clustalColour); - colourMenu.add(BLOSUM62Colour); - colourMenu.add(PIDColour); - colourMenu.add(zappoColour); - colourMenu.add(taylorColour); - colourMenu.add(hydrophobicityColour); - colourMenu.add(helixColour); - colourMenu.add(strandColour); - colourMenu.add(turnColour); - colourMenu.add(buriedColour); - colourMenu.add(nucleotideColour); - colourMenu.add(purinePyrimidineColour); - colourMenu.add(RNAInteractionColour); - // colourMenu.add(covariationColour); - colourMenu.add(tcoffeeColour); - colourMenu.add(userDefinedColour); - colourMenu.addSeparator(); - colourMenu.add(conservationMenuItem); - colourMenu.add(modifyConservation); - colourMenu.add(abovePIDThreshold); - colourMenu.add(modifyPID); - colourMenu.add(annotationColour); - colourMenu.add(rnahelicesColour); + sort.add(sortIDMenuItem); + sort.add(sortLengthMenuItem); + sort.add(sortGroupMenuItem); + sort.add(sortPairwiseMenuItem); + sort.add(sortByTreeMenu); calculateMenu.add(sort); calculateMenu.add(calculateTree); calculateMenu.addSeparator(); calculateMenu.add(pairwiseAlignmentMenuItem); - calculateMenu.add(PCAMenuItem); calculateMenu.addSeparator(); calculateMenu.add(showTranslation); + calculateMenu.add(showReverse); + calculateMenu.add(showReverseComplement); calculateMenu.add(showProducts); calculateMenu.add(autoCalculate); calculateMenu.add(sortByTree); calculateMenu.addSeparator(); + calculateMenu.add(expandAlignment); calculateMenu.add(extractScores); + if (!Platform.isJS()) + { + calculateMenu.addSeparator(); + calculateMenu.add(runGroovy); + } + webServiceNoServices = new JMenuItem( MessageManager.getString("label.no_services")); webService.add(webServiceNoServices); - pasteMenu.add(pasteNew); - pasteMenu.add(pasteThis); - sort.add(sortIDMenuItem); - sort.add(sortLengthMenuItem); - sort.add(sortGroupMenuItem); - sort.add(sortPairwiseMenuItem); - sort.add(sortByTreeMenu); - jMenu2.add(htmlMenuItem); - jMenu2.add(epsFile); - jMenu2.add(createPNG); + if (!Platform.isJS()) + { + exportImageMenu.add(htmlMenuItem); + } + exportImageMenu.add(epsFile); + exportImageMenu.add(createPNG); + if (!Platform.isJS()) + { + exportImageMenu.add(createBioJS); + exportImageMenu.add(createSVG); + } addSequenceMenu.add(addFromFile); addSequenceMenu.add(addFromText); addSequenceMenu.add(addFromURL); this.getContentPane().add(statusPanel, java.awt.BorderLayout.SOUTH); statusPanel.add(statusBar, null); this.getContentPane().add(tabbedPane, java.awt.BorderLayout.CENTER); - jMenu3.add(showAllColumns); - jMenu3.add(showAllSeqs); - jMenu3.add(showAllhidden); - hideMenu.add(hideSelColumns); - hideMenu.add(hideSelSequences); - hideMenu.add(hideAllSelection); - hideMenu.add(hideAllButSelection); formatMenu.add(font); formatMenu.addSeparator(); @@ -2378,13 +1910,144 @@ public class GAlignFrame extends JInternalFrame selectMenu.add(unGroup); selectMenu.add(grpsFromSelection); selectMenu.add(deleteGroups); - calculateMenu.add(expandAlignment); + selectMenu.add(annotationColumn); + selectMenu.add(selectHighlighted); // TODO - determine if the listenToViewSelections button is needed : see bug // JAL-574 // selectMenu.addSeparator(); // selectMenu.add(listenToViewSelections); } + protected void loadVcf_actionPerformed() + { + } + + /** + * Constructs the entries on the Colour menu (but does not add them to the + * menu). + */ + protected void initColourMenu() + { + applyToAllGroups = new JCheckBoxMenuItem( + MessageManager.getString("label.apply_colour_to_all_groups")); + applyToAllGroups.addActionListener(new ActionListener() + { + @Override + public void actionPerformed(ActionEvent e) + { + applyToAllGroups_actionPerformed(applyToAllGroups.isSelected()); + } + }); + + textColour = new JMenuItem( + MessageManager.getString("label.text_colour")); + textColour.addActionListener(new ActionListener() + { + @Override + public void actionPerformed(ActionEvent e) + { + textColour_actionPerformed(); + } + }); + + conservationMenuItem = new JCheckBoxMenuItem( + MessageManager.getString("action.by_conservation")); + conservationMenuItem.addActionListener(new ActionListener() + { + @Override + public void actionPerformed(ActionEvent e) + { + conservationMenuItem_actionPerformed( + conservationMenuItem.isSelected()); + } + }); + + abovePIDThreshold = new JCheckBoxMenuItem( + MessageManager.getString("label.above_identity_threshold")); + abovePIDThreshold.addActionListener(new ActionListener() + { + @Override + public void actionPerformed(ActionEvent e) + { + abovePIDThreshold_actionPerformed(abovePIDThreshold.isSelected()); + } + }); + modifyPID = new JMenuItem( + MessageManager.getString("label.modify_identity_threshold")); + modifyPID.addActionListener(new ActionListener() + { + @Override + public void actionPerformed(ActionEvent e) + { + modifyPID_actionPerformed(); + } + }); + modifyConservation = new JMenuItem(MessageManager + .getString("label.modify_conservation_threshold")); + modifyConservation.addActionListener(new ActionListener() + { + @Override + public void actionPerformed(ActionEvent e) + { + modifyConservation_actionPerformed(); + } + }); + + annotationColour = new JRadioButtonMenuItem( + MessageManager.getString("action.by_annotation")); + annotationColour.setName(ResidueColourScheme.ANNOTATION_COLOUR); + annotationColour.addActionListener(new ActionListener() + { + @Override + public void actionPerformed(ActionEvent e) + { + annotationColour_actionPerformed(); + } + }); + } + + protected void selectHighlightedColumns_actionPerformed( + ActionEvent actionEvent) + { + // TODO Auto-generated method stub + + } + + /** + * Generate the reverse sequence (or reverse complement if the flag is true) + * and add it to the alignment + * + * @param complement + */ + protected void showReverse_actionPerformed(boolean complement) + { + } + + /** + * Try to run script in a Groovy console, having first ensured that this + * alignframe is set as currentAlignFrame in Desktop + */ + protected void runGroovy_actionPerformed() + { + + } + + /** + * Adds the given action listener and key accelerator to the given menu item. + * Also saves in a lookup table to support lookup of action by key stroke. + * + * @param keyStroke + * @param menuItem + * @param actionListener + */ + protected void addMenuActionAndAccelerator(KeyStroke keyStroke, + JMenuItem menuItem, ActionListener actionListener) + { + menuItem.setAccelerator(keyStroke); + accelerators.put(keyStroke, menuItem); + menuItem.addActionListener(actionListener); + } + /** * Action on clicking sort annotations by type. * @@ -2510,13 +2173,6 @@ public class GAlignFrame extends JInternalFrame } - protected void showSeqFeaturesHeight_actionPerformed( - ActionEvent actionEvent) - { - // TODO Auto-generated method stub - - } - protected void justifyRightMenuItem_actionPerformed(ActionEvent e) { // TODO Auto-generated method stub @@ -2551,10 +2207,6 @@ public class GAlignFrame extends JInternalFrame { } - protected void showProducts_actionPerformed(ActionEvent e) - { - } - protected void buildSortByAnnotationScoresMenu() { } @@ -2563,7 +2215,7 @@ public class GAlignFrame extends JInternalFrame { } - protected void outputText_actionPerformed(ActionEvent e) + protected void outputText_actionPerformed(String formatName) { } @@ -2596,6 +2248,11 @@ public class GAlignFrame extends JInternalFrame { } + protected void bioJSMenuItem_actionPerformed(ActionEvent e) + { + + } + protected void closeMenuItem_actionPerformed(boolean b) { } @@ -2684,87 +2341,11 @@ public class GAlignFrame extends JInternalFrame { } - protected void PCAMenuItem_actionPerformed(ActionEvent e) - { - } - - protected void averageDistanceTreeMenuItem_actionPerformed(ActionEvent e) - { - } - protected void neighbourTreeMenuItem_actionPerformed(ActionEvent e) { } - protected void njTreeBlosumMenuItem_actionPerformed(ActionEvent e) - { - } - - protected void avTreeBlosumMenuItem_actionPerformed(ActionEvent e) - { - } - - protected void clustalColour_actionPerformed(ActionEvent e) - { - } - - protected void zappoColour_actionPerformed(ActionEvent e) - { - } - - protected void taylorColour_actionPerformed(ActionEvent e) - { - } - - protected void hydrophobicityColour_actionPerformed(ActionEvent e) - { - } - - protected void helixColour_actionPerformed(ActionEvent e) - { - } - - protected void strandColour_actionPerformed(ActionEvent e) - { - } - - protected void turnColour_actionPerformed(ActionEvent e) - { - } - - protected void buriedColour_actionPerformed(ActionEvent e) - { - } - - protected void userDefinedColour_actionPerformed(ActionEvent e) - { - } - - protected void PIDColour_actionPerformed(ActionEvent e) - { - } - - protected void BLOSUM62Colour_actionPerformed(ActionEvent e) - { - } - - protected void purinePyrimidineColour_actionPerformed(ActionEvent e) - { - } - - protected void RNAInteractionColour_actionPerformed(ActionEvent e) - { - } - - /* - * protected void covariationColour_actionPerformed(ActionEvent e) { } - */ - - protected void noColourmenuItem_actionPerformed(ActionEvent e) - { - } - - protected void conservationMenuItem_actionPerformed(ActionEvent e) + protected void conservationMenuItem_actionPerformed(boolean selected) { } @@ -2780,7 +2361,7 @@ public class GAlignFrame extends JInternalFrame { } - protected void abovePIDThreshold_actionPerformed(ActionEvent e) + protected void abovePIDThreshold_actionPerformed(boolean selected) { } @@ -2788,10 +2369,6 @@ public class GAlignFrame extends JInternalFrame { } - protected void nucleotideColour_actionPerformed(ActionEvent e) - { - } - protected void deleteGroups_actionPerformed(ActionEvent e) { } @@ -2804,15 +2381,15 @@ public class GAlignFrame extends JInternalFrame { } - protected void copy_actionPerformed(ActionEvent e) + protected void copy_actionPerformed() { } - protected void cut_actionPerformed(ActionEvent e) + protected void cut_actionPerformed() { } - protected void delete_actionPerformed(ActionEvent e) + protected void delete_actionPerformed() { } @@ -2824,7 +2401,7 @@ public class GAlignFrame extends JInternalFrame { } - protected void applyToAllGroups_actionPerformed(ActionEvent e) + protected void applyToAllGroups_actionPerformed(boolean selected) { } @@ -2849,33 +2426,25 @@ public class GAlignFrame extends JInternalFrame { } - protected void LoadtreeMenuItem_actionPerformed(ActionEvent e) + public void createSVG(java.io.File f) { } - /** - * Template method to handle the 'load T-Coffee scores' menu event. - *

- * Subclasses override this method to provide a custom action. - * - * @param event - * The raised event - */ - protected void loadScores_actionPerformed(ActionEvent event) + protected void loadTreeMenuItem_actionPerformed(ActionEvent e) { } /** - * Template method to handle the 'Color T-Coffee scores' menu event. + * Template method to handle the 'load T-Coffee scores' menu event. *

* Subclasses override this method to provide a custom action. * * @param event * The raised event */ - protected void tcoffeeColorScheme_actionPerformed(ActionEvent event) + protected void loadScores_actionPerformed(ActionEvent event) { } @@ -2896,15 +2465,15 @@ public class GAlignFrame extends JInternalFrame { } - protected void modifyPID_actionPerformed(ActionEvent e) + protected void modifyPID_actionPerformed() { } - protected void modifyConservation_actionPerformed(ActionEvent e) + protected void modifyConservation_actionPerformed() { } - protected void saveAs_actionPerformed(ActionEvent e) + protected void saveAs_actionPerformed() { } @@ -2922,7 +2491,7 @@ public class GAlignFrame extends JInternalFrame } - public void showTranslation_actionPerformed(ActionEvent e) + public void showTranslation_actionPerformed(GeneticCodeI codeTable) { } @@ -2932,7 +2501,7 @@ public class GAlignFrame extends JInternalFrame } - public void fetchSequence_actionPerformed(ActionEvent e) + public void fetchSequence_actionPerformed() { } @@ -2942,14 +2511,12 @@ public class GAlignFrame extends JInternalFrame } - public void annotationColour_actionPerformed(ActionEvent e) + public void annotationColour_actionPerformed() { - } - public void rnahelicesColour_actionPerformed(ActionEvent e) + public void annotationColumn_actionPerformed(ActionEvent e) { - } public void associatedData_actionPerformed(ActionEvent e) @@ -3042,7 +2609,7 @@ public class GAlignFrame extends JInternalFrame } - public void textColour_actionPerformed(ActionEvent e) + public void textColour_actionPerformed() { } @@ -3062,7 +2629,7 @@ public class GAlignFrame extends JInternalFrame } - public void buildTreeMenu() + public void buildTreeSortMenu() { } @@ -3098,8 +2665,55 @@ public class GAlignFrame extends JInternalFrame return annotationSortOrder; } - protected void setAnnotationSortOrder(SequenceAnnotationOrder annotationSortOrder) + protected void setAnnotationSortOrder( + SequenceAnnotationOrder annotationSortOrder) { this.annotationSortOrder = annotationSortOrder; } + + public Map getAccelerators() + { + return this.accelerators; + } + + /** + * Returns the selected index of the tabbed pane, or -1 if none selected + * (including the case where the tabbed pane has not been made visible). + * + * @return + */ + public int getTabIndex() + { + return tabbedPane.getSelectedIndex(); + } + + public JPanel getStatusPanel() + { + return statusPanel; + } + + /** + * Sets a reference to the containing split frame. Also makes the 'toggle + * split view' menu item visible and checked. + * + * @param sf + */ + public void setSplitFrame(SplitContainerI sf) + { + this.splitFrame = sf; + if (sf != null) + { + this.showComplementMenuItem.setVisible(true); + this.showComplementMenuItem.setState(true); + } + } + + public SplitContainerI getSplitViewContainer() + { + return this.splitFrame; + } + + protected void showComplement_actionPerformed(boolean complement) + { + } }