X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fjbgui%2FGAlignFrame.java;h=38ad43795f322171214e3cb85adf4713b619e93d;hb=ae737f35e5185aa421563e4c061340a3c4152514;hp=7164f314d5b43861739149105978397f98fb8d3d;hpb=3965e9e3bc4ca05dcc82b8dc72c380f208c9a1e6;p=jalview.git diff --git a/src/jalview/jbgui/GAlignFrame.java b/src/jalview/jbgui/GAlignFrame.java index 7164f31..38ad437 100755 --- a/src/jalview/jbgui/GAlignFrame.java +++ b/src/jalview/jbgui/GAlignFrame.java @@ -21,26 +21,34 @@ 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.PaintRefresher; import jalview.gui.Preferences; +import jalview.gui.TreePanel; 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.Component; 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.InputEvent; import java.awt.event.KeyEvent; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; +import java.util.ArrayList; import java.util.HashMap; +import java.util.List; import java.util.Map; import javax.swing.BorderFactory; @@ -59,15 +67,18 @@ 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 JMenuItem closeMenuItem = new JMenuItem(); - protected JMenu webService = new JMenu(); + public JMenu webService = new JMenu();// BH 2019 was protected, but not + // sufficient for AlignFrame thread run - protected JMenuItem webServiceNoServices; + public JMenuItem webServiceNoServices;// BH 2019 was protected, but not + // sufficient for AlignFrame thread run protected JCheckBoxMenuItem viewBoxesMenuItem = new JCheckBoxMenuItem(); @@ -75,7 +86,9 @@ public class GAlignFrame extends JInternalFrame protected JMenu sortByAnnotScore = new JMenu(); - public JLabel statusBar = new JLabel(); + public JLabel statusBar = new JLabel(); // BH 2019 was protected, but not + // sufficient for + // AlignFrame.printWriter protected JMenu outputTextboxMenu = new JMenu(); @@ -113,7 +126,7 @@ public class GAlignFrame extends JInternalFrame protected JMenu colourMenu = new JMenu(); - protected JRadioButtonMenuItem textColour; + protected JMenuItem textColour; protected JCheckBoxMenuItem conservationMenuItem; @@ -123,13 +136,13 @@ public class GAlignFrame extends JInternalFrame protected JMenuItem modifyPID; - protected JMenuItem annotationColour; + protected JRadioButtonMenuItem annotationColour; protected JMenu sortByTreeMenu = new JMenu(); protected JMenu sort = new JMenu(); - protected JMenu calculateTree = new JMenu(); + protected JMenuItem calculateTree = new JMenuItem(); protected JCheckBoxMenuItem padGapsMenuitem = new JCheckBoxMenuItem(); @@ -137,7 +150,7 @@ public class GAlignFrame extends JInternalFrame protected JCheckBoxMenuItem showDbRefsMenuitem = new JCheckBoxMenuItem(); - protected JMenuItem showTranslation = new JMenuItem(); + protected JMenu showTranslation = new JMenu(); protected JMenuItem showReverse = new JMenuItem(); @@ -147,6 +160,8 @@ public class GAlignFrame extends JInternalFrame protected JMenuItem runGroovy = new JMenuItem(); + protected JMenuItem loadVcf; + protected JCheckBoxMenuItem autoCalculate = new JCheckBoxMenuItem(); protected JCheckBoxMenuItem sortByTree = new JCheckBoxMenuItem(); @@ -195,11 +210,13 @@ public class GAlignFrame extends JInternalFrame protected JCheckBoxMenuItem applyAutoAnnotationSettings = new JCheckBoxMenuItem(); + protected JMenuItem openFeatureSettings; + private SequenceAnnotationOrder annotationSortOrder; private boolean showAutoCalculatedAbove = false; - private Map accelerators = new HashMap(); + private Map accelerators = new HashMap<>(); private SplitContainerI splitFrame; @@ -207,6 +224,11 @@ public class GAlignFrame extends JInternalFrame { try { + + // for Web-page embedding using id=align-frame-div + setName(Platform.getAppID("alignment")); + + jbInit(); setJMenuBar(alignFrameMenuBar); @@ -220,7 +242,7 @@ public class GAlignFrame extends JInternalFrame @Override public void actionPerformed(ActionEvent e) { - outputText_actionPerformed(e); + outputText_actionPerformed(e.getActionCommand()); } }); @@ -231,7 +253,7 @@ public class GAlignFrame extends JInternalFrame System.err.println(e.toString()); } - if (!Platform.isAMac()) + if (Platform.allowMnemonics()) // was "not mac and not JS" { closeMenuItem.setMnemonic('C'); outputTextboxMenu.setMnemonic('T'); @@ -255,19 +277,17 @@ public class GAlignFrame extends JInternalFrame @Override public void actionPerformed(ActionEvent e) { - saveAs_actionPerformed(e); + saveAs_actionPerformed(); } }; // FIXME getDefaultToolkit throws an exception in Headless mode - KeyStroke keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_S, Toolkit - .getDefaultToolkit().getMenuShortcutKeyMask() - | KeyEvent.SHIFT_MASK, false); + KeyStroke keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_S, Platform.SHORTCUT_KEY_MASK | InputEvent.SHIFT_DOWN_MASK, + false); addMenuActionAndAccelerator(keyStroke, saveAs, al); closeMenuItem.setText(MessageManager.getString("action.close")); - keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_W, Toolkit - .getDefaultToolkit().getMenuShortcutKeyMask(), false); + keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_W, Platform.SHORTCUT_KEY_MASK, false); al = new ActionListener() { @Override @@ -289,8 +309,8 @@ public class GAlignFrame extends JInternalFrame webService.setText(MessageManager.getString("action.web_service")); JMenuItem selectAllSequenceMenuItem = new JMenuItem( MessageManager.getString("action.select_all")); - keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_A, Toolkit - .getDefaultToolkit().getMenuShortcutKeyMask(), false); + keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_A, + Platform.SHORTCUT_KEY_MASK, false); al = new ActionListener() { @Override @@ -316,8 +336,8 @@ public class GAlignFrame extends JInternalFrame JMenuItem invertSequenceMenuItem = new JMenuItem( MessageManager.getString("action.invert_sequence_selection")); - keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_I, Toolkit - .getDefaultToolkit().getMenuShortcutKeyMask(), false); + keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_I, + Platform.SHORTCUT_KEY_MASK, false); al = new ActionListener() { @Override @@ -340,8 +360,8 @@ public class GAlignFrame extends JInternalFrame }); JMenuItem expandAlignment = new JMenuItem( MessageManager.getString("action.view_flanking_regions")); - expandAlignment.setToolTipText(MessageManager - .getString("label.view_flanking_regions")); + expandAlignment.setToolTipText( + MessageManager.getString("label.view_flanking_regions")); expandAlignment.addActionListener(new ActionListener() { @Override @@ -352,8 +372,8 @@ public class GAlignFrame extends JInternalFrame }); JMenuItem remove2LeftMenuItem = new JMenuItem( MessageManager.getString("action.remove_left")); - keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_L, Toolkit - .getDefaultToolkit().getMenuShortcutKeyMask(), false); + keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_L, + Platform.SHORTCUT_KEY_MASK, false); al = new ActionListener() { @Override @@ -366,8 +386,8 @@ public class GAlignFrame extends JInternalFrame JMenuItem remove2RightMenuItem = new JMenuItem( MessageManager.getString("action.remove_right")); - keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_R, Toolkit - .getDefaultToolkit().getMenuShortcutKeyMask(), false); + keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_R, + Platform.SHORTCUT_KEY_MASK, false); al = new ActionListener() { @Override @@ -380,8 +400,8 @@ public class GAlignFrame extends JInternalFrame JMenuItem removeGappedColumnMenuItem = new JMenuItem( MessageManager.getString("action.remove_empty_columns")); - keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_E, Toolkit - .getDefaultToolkit().getMenuShortcutKeyMask(), false); + keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_E, + Platform.SHORTCUT_KEY_MASK, false); al = new ActionListener() { @Override @@ -394,9 +414,10 @@ public class GAlignFrame extends JInternalFrame JMenuItem removeAllGapsMenuItem = new JMenuItem( MessageManager.getString("action.remove_all_gaps")); - keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_E, Toolkit - .getDefaultToolkit().getMenuShortcutKeyMask() - | KeyEvent.SHIFT_MASK, false); + keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_E, + Platform.SHORTCUT_KEY_MASK + | InputEvent.SHIFT_DOWN_MASK, + false); al = new ActionListener() { @Override @@ -447,8 +468,8 @@ public class GAlignFrame extends JInternalFrame viewTextMenuItem_actionPerformed(e); } }); - showNonconservedMenuItem.setText(MessageManager - .getString("label.show_non_conserved")); + showNonconservedMenuItem + .setText(MessageManager.getString("label.show_non_conserved")); showNonconservedMenuItem.setState(false); showNonconservedMenuItem.addActionListener(new ActionListener() { @@ -501,8 +522,8 @@ public class GAlignFrame extends JInternalFrame JMenuItem removeRedundancyMenuItem = new JMenuItem( MessageManager.getString("action.remove_redundancy")); - keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_D, Toolkit - .getDefaultToolkit().getMenuShortcutKeyMask(), false); + keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_D, + Platform.SHORTCUT_KEY_MASK, false); al = new ActionListener() { @Override @@ -523,36 +544,6 @@ public class GAlignFrame extends JInternalFrame pairwiseAlignmentMenuItem_actionPerformed(e); } }); - JMenuItem PCAMenuItem = new JMenuItem( - MessageManager.getString("label.principal_component_analysis")); - PCAMenuItem.addActionListener(new ActionListener() - { - @Override - public void actionPerformed(ActionEvent e) - { - PCAMenuItem_actionPerformed(e); - } - }); - JMenuItem averageDistanceTreeMenuItem = new JMenuItem( - MessageManager.getString("label.average_distance_identity")); - averageDistanceTreeMenuItem.addActionListener(new ActionListener() - { - @Override - public void actionPerformed(ActionEvent e) - { - averageDistanceTreeMenuItem_actionPerformed(e); - } - }); - JMenuItem neighbourTreeMenuItem = new JMenuItem( - MessageManager.getString("label.neighbour_joining_identity")); - neighbourTreeMenuItem.addActionListener(new ActionListener() - { - @Override - public void actionPerformed(ActionEvent e) - { - neighbourTreeMenuItem_actionPerformed(e); - } - }); this.getContentPane().setLayout(new BorderLayout()); alignFrameMenuBar.setFont(new java.awt.Font("Verdana", 0, 11)); @@ -560,35 +551,14 @@ public class GAlignFrame extends JInternalFrame 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")); + outputTextboxMenu + .setText(MessageManager.getString("label.out_to_textbox")); - - JMenuItem avDistanceTreeBlosumMenuItem = new JMenuItem( - MessageManager.getString("label.average_distance_blosum62")); - avDistanceTreeBlosumMenuItem.addActionListener(new ActionListener() - { - @Override - public void actionPerformed(ActionEvent e) - { - avTreeBlosumMenuItem_actionPerformed(e); - } - }); - JMenuItem njTreeBlosumMenuItem = new JMenuItem( - MessageManager.getString("label.neighbour_blosum62")); - njTreeBlosumMenuItem.addActionListener(new 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 @@ -597,8 +567,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); @@ -610,8 +580,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() { @@ -621,8 +591,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() { @@ -632,8 +602,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() { @@ -651,8 +621,8 @@ public class GAlignFrame extends JInternalFrame final JCheckBoxMenuItem sortAnnByLabel = new JCheckBoxMenuItem( MessageManager.getString("label.sort_annotations_by_label")); - sortAnnBySequence - .setSelected(sortAnnotationsBy == SequenceAnnotationOrder.SEQUENCE_AND_LABEL); + sortAnnBySequence.setSelected( + sortAnnotationsBy == SequenceAnnotationOrder.SEQUENCE_AND_LABEL); sortAnnBySequence.addActionListener(new ActionListener() { @Override @@ -660,13 +630,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 - .setSelected(sortAnnotationsBy == SequenceAnnotationOrder.LABEL_AND_SEQUENCE); + sortAnnByLabel.setSelected( + sortAnnotationsBy == SequenceAnnotationOrder.LABEL_AND_SEQUENCE); sortAnnByLabel.addActionListener(new ActionListener() { @Override @@ -674,14 +645,14 @@ 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 = new JCheckBoxMenuItem( - MessageManager - .getString("label.colour_text")); + MessageManager.getString("label.colour_text")); colourTextMenuItem.addActionListener(new ActionListener() { @Override @@ -726,8 +697,8 @@ public class GAlignFrame extends JInternalFrame undoMenuItem.setEnabled(false); undoMenuItem.setText(MessageManager.getString("action.undo")); - keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_Z, Toolkit - .getDefaultToolkit().getMenuShortcutKeyMask(), false); + keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_Z, + Platform.SHORTCUT_KEY_MASK, false); al = new ActionListener() { @Override @@ -740,8 +711,8 @@ public class GAlignFrame extends JInternalFrame redoMenuItem.setEnabled(false); redoMenuItem.setText(MessageManager.getString("action.redo")); - keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_Y, Toolkit - .getDefaultToolkit().getMenuShortcutKeyMask(), false); + keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_Y, + Platform.SHORTCUT_KEY_MASK, false); al = new ActionListener() { @Override @@ -764,8 +735,8 @@ public class GAlignFrame extends JInternalFrame JMenuItem printMenuItem = new JMenuItem( MessageManager.getString("action.print")); - keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_P, Toolkit - .getDefaultToolkit().getMenuShortcutKeyMask(), false); + keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_P, + Platform.SHORTCUT_KEY_MASK, false); al = new ActionListener() { @Override @@ -790,8 +761,8 @@ public class GAlignFrame extends JInternalFrame JMenuItem findMenuItem = new JMenuItem( MessageManager.getString("action.find")); - keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_F, Toolkit - .getDefaultToolkit().getMenuShortcutKeyMask(), false); + keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_F, + Platform.SHORTCUT_KEY_MASK, false); findMenuItem.setToolTipText(JvSwingUtils.wrapTooltip(true, MessageManager.getString("label.find_tip"))); al = new ActionListener() @@ -804,8 +775,8 @@ public class GAlignFrame extends JInternalFrame }; addMenuActionAndAccelerator(keyStroke, findMenuItem, al); - showSeqFeatures.setText(MessageManager - .getString("label.show_sequence_features")); + showSeqFeatures.setText( + MessageManager.getString("label.show_sequence_features")); showSeqFeatures.addActionListener(new ActionListener() { @Override @@ -820,8 +791,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() { @@ -832,8 +803,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() { @@ -844,8 +815,8 @@ public class GAlignFrame extends JInternalFrame } }); - showGroupConservation.setText(MessageManager - .getString("label.group_conservation")); + showGroupConservation + .setText(MessageManager.getString("label.group_conservation")); showGroupConservation.addActionListener(new ActionListener() { @@ -857,8 +828,8 @@ public class GAlignFrame extends JInternalFrame }); - showGroupConsensus.setText(MessageManager - .getString("label.group_consensus")); + showGroupConsensus + .setText(MessageManager.getString("label.group_consensus")); showGroupConsensus.addActionListener(new ActionListener() { @@ -869,8 +840,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() { @@ -881,8 +852,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() { @@ -893,8 +864,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() { @@ -905,8 +876,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() @@ -925,8 +896,8 @@ public class GAlignFrame extends JInternalFrame MessageManager.getString("label.show_last")); buttonGroup.add(showAutoFirst); buttonGroup.add(showAutoLast); - final boolean autoFirst = 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() @@ -951,8 +922,8 @@ public class GAlignFrame extends JInternalFrame JMenuItem deleteGroups = new JMenuItem( MessageManager.getString("action.undefine_groups")); - keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_U, Toolkit - .getDefaultToolkit().getMenuShortcutKeyMask(), false); + keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_U, + Platform.SHORTCUT_KEY_MASK, false); al = new ActionListener() { @Override @@ -976,8 +947,8 @@ public class GAlignFrame extends JInternalFrame JMenuItem createGroup = new JMenuItem( MessageManager.getString("action.create_group")); - keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_G, Toolkit - .getDefaultToolkit().getMenuShortcutKeyMask(), false); + keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_G, + Platform.SHORTCUT_KEY_MASK, false); al = new ActionListener() { @Override @@ -990,9 +961,10 @@ public class GAlignFrame extends JInternalFrame JMenuItem unGroup = new JMenuItem( MessageManager.getString("action.remove_group")); - keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_G, Toolkit - .getDefaultToolkit().getMenuShortcutKeyMask() - | KeyEvent.SHIFT_MASK, false); + keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_G, + Platform.SHORTCUT_KEY_MASK + | InputEvent.SHIFT_DOWN_MASK, + false); al = new ActionListener() { @Override @@ -1004,28 +976,28 @@ public class GAlignFrame extends JInternalFrame addMenuActionAndAccelerator(keyStroke, unGroup, al); copy.setText(MessageManager.getString("action.copy")); - keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_C, Toolkit - .getDefaultToolkit().getMenuShortcutKeyMask(), false); + keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_C, + Platform.SHORTCUT_KEY_MASK, false); al = new ActionListener() { @Override public void actionPerformed(ActionEvent e) { - copy_actionPerformed(e); + copy_actionPerformed(); } }; addMenuActionAndAccelerator(keyStroke, copy, al); cut.setText(MessageManager.getString("action.cut")); - keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_X, Toolkit - .getDefaultToolkit().getMenuShortcutKeyMask(), false); + keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_X, + Platform.SHORTCUT_KEY_MASK, false); al = new ActionListener() { @Override public void actionPerformed(ActionEvent e) { - cut_actionPerformed(e); + cut_actionPerformed(); } }; addMenuActionAndAccelerator(keyStroke, cut, al); @@ -1037,16 +1009,17 @@ public class GAlignFrame extends JInternalFrame @Override public void actionPerformed(ActionEvent e) { - delete_actionPerformed(e); + delete_actionPerformed(); } }); pasteMenu.setText(MessageManager.getString("action.paste")); JMenuItem pasteNew = new JMenuItem( MessageManager.getString("label.to_new_alignment")); - keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_V, Toolkit - .getDefaultToolkit().getMenuShortcutKeyMask() - | KeyEvent.SHIFT_MASK, false); + keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_V, + Platform.SHORTCUT_KEY_MASK + | InputEvent.SHIFT_DOWN_MASK, + false); al = new ActionListener() { @Override @@ -1059,8 +1032,8 @@ public class GAlignFrame extends JInternalFrame JMenuItem pasteThis = new JMenuItem( MessageManager.getString("label.to_this_alignment")); - keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_V, Toolkit - .getDefaultToolkit().getMenuShortcutKeyMask(), false); + keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_V, + Platform.SHORTCUT_KEY_MASK, false); al = new ActionListener() { @Override @@ -1080,8 +1053,8 @@ public class GAlignFrame extends JInternalFrame createPNG(null); } }); - createPNG.setActionCommand(MessageManager - .getString("label.save_png_image")); + createPNG.setActionCommand( + MessageManager.getString("label.save_png_image")); JMenuItem font = new JMenuItem(MessageManager.getString("action.font")); font.addActionListener(new ActionListener() @@ -1092,8 +1065,8 @@ public class GAlignFrame extends JInternalFrame font_actionPerformed(e); } }); - seqLimits.setText(MessageManager - .getString("label.show_sequence_limits")); + seqLimits.setText( + MessageManager.getString("label.show_sequence_limits")); seqLimits.setState(jalview.bin.Cache.getDefault("SHOW_JVSUFFIX", true)); seqLimits.addActionListener(new ActionListener() { @@ -1125,8 +1098,8 @@ public class GAlignFrame extends JInternalFrame JMenuItem loadTreeMenuItem = new JMenuItem( MessageManager.getString("label.load_associated_tree")); - loadTreeMenuItem.setActionCommand(MessageManager - .getString("label.load_tree_for_sequence_set")); + loadTreeMenuItem.setActionCommand( + MessageManager.getString("label.load_tree_for_sequence_set")); loadTreeMenuItem.addActionListener(new ActionListener() { @Override @@ -1170,8 +1143,8 @@ public class GAlignFrame extends JInternalFrame }); centreColumnLabelsMenuItem.setVisible(true); centreColumnLabelsMenuItem.setState(false); - centreColumnLabelsMenuItem.setText(MessageManager - .getString("label.centre_column_labels")); + centreColumnLabelsMenuItem.setText( + MessageManager.getString("label.centre_column_labels")); centreColumnLabelsMenuItem.addActionListener(new ActionListener() { @Override @@ -1182,8 +1155,8 @@ public class GAlignFrame extends JInternalFrame }); followHighlightMenuItem.setVisible(true); followHighlightMenuItem.setState(true); - followHighlightMenuItem.setText(MessageManager - .getString("label.automatic_scrolling")); + followHighlightMenuItem + .setText(MessageManager.getString("label.automatic_scrolling")); followHighlightMenuItem.addActionListener(new ActionListener() { @@ -1203,7 +1176,25 @@ public class GAlignFrame extends JInternalFrame @Override public void menuSelected(MenuEvent e) { - buildTreeMenu(); + enableSortMenuOptions(); + } + + @Override + public void menuDeselected(MenuEvent e) + { + } + + @Override + public void menuCanceled(MenuEvent e) + { + } + }); + sortByTreeMenu.addMenuListener(new MenuListener() + { + @Override + public void menuSelected(MenuEvent e) + { + buildTreeSortMenu(); } @Override @@ -1216,8 +1207,8 @@ public class GAlignFrame extends JInternalFrame { } }); - sortByAnnotScore.setText(MessageManager - .getString("label.sort_by_score")); + sortByAnnotScore + .setText(MessageManager.getString("label.sort_by_score")); sort.add(sortByAnnotScore); sort.addMenuListener(new javax.swing.event.MenuListener() { @@ -1241,11 +1232,11 @@ public class GAlignFrame extends JInternalFrame sortByAnnotScore.setVisible(false); calculateTree - .setText(MessageManager.getString("action.calculate_tree")); + .setText(MessageManager.getString("action.calculate_tree_pca")); padGapsMenuitem.setText(MessageManager.getString("label.pad_gaps")); - padGapsMenuitem.setState(jalview.bin.Cache - .getDefault("PAD_GAPS", false)); + padGapsMenuitem + .setState(jalview.bin.Cache.getDefault("PAD_GAPS", false)); padGapsMenuitem.addActionListener(new ActionListener() { @Override @@ -1265,16 +1256,33 @@ public class GAlignFrame extends JInternalFrame vamsasStore_actionPerformed(e); } }); - showTranslation.setText(MessageManager - .getString("label.translate_cDNA")); - showTranslation.addActionListener(new ActionListener() - { - @Override - public void actionPerformed(ActionEvent e) + + /* + * 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_actionPerformed(e); + showTranslation.addSeparator(); } - }); + first = false; + } + showReverse.setText(MessageManager.getString("label.reverse")); showReverse.addActionListener(new ActionListener() { @@ -1284,8 +1292,8 @@ public class GAlignFrame extends JInternalFrame showReverse_actionPerformed(false); } }); - showReverseComplement.setText(MessageManager - .getString("label.reverse_complement")); + showReverseComplement + .setText(MessageManager.getString("label.reverse_complement")); showReverseComplement.addActionListener(new ActionListener() { @Override @@ -1312,8 +1320,8 @@ public class GAlignFrame extends JInternalFrame showProducts.setText(MessageManager.getString("label.get_cross_refs")); runGroovy.setText(MessageManager.getString("label.run_groovy")); - runGroovy.setToolTipText(MessageManager - .getString("label.run_groovy_tip")); + runGroovy.setToolTipText( + MessageManager.getString("label.run_groovy_tip")); runGroovy.addActionListener(new ActionListener() { @Override @@ -1323,7 +1331,7 @@ public class GAlignFrame extends JInternalFrame } }); - JMenuItem openFeatureSettings = new JMenuItem( + openFeatureSettings = new JMenuItem( MessageManager.getString("action.feature_settings")); openFeatureSettings.addActionListener(new ActionListener() { @@ -1333,6 +1341,10 @@ public class GAlignFrame extends JInternalFrame featureSettings_actionPerformed(e); } }); + + /* + * add sub-menu of database we can fetch from + */ JMenuItem fetchSequence = new JMenuItem( MessageManager.getString("label.fetch_sequences")); fetchSequence.addActionListener(new ActionListener() @@ -1340,7 +1352,7 @@ public class GAlignFrame extends JInternalFrame @Override public void actionPerformed(ActionEvent e) { - fetchSequence_actionPerformed(e); + fetchSequence_actionPerformed(); } }); @@ -1354,10 +1366,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( + jalview.bin.Cache.getDefault("AUTO_CALC_CONSENSUS", true)); autoCalculate.addActionListener(new ActionListener() { @Override @@ -1366,12 +1389,10 @@ 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)); sortByTree.addActionListener(new ActionListener() @@ -1383,12 +1404,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() { @@ -1454,8 +1474,8 @@ public class GAlignFrame extends JInternalFrame statusPanel.setLayout(new GridLayout()); JMenuItem showAllSeqs = new JMenuItem( MessageManager.getString("label.all_sequences")); - showAllSeqs.setToolTipText(MessageManager - .getString("label.toggle_sequence_visibility")); + showAllSeqs.setToolTipText( + MessageManager.getString("label.toggle_sequence_visibility")); showAllSeqs.addActionListener(new ActionListener() { @Override @@ -1466,8 +1486,8 @@ public class GAlignFrame extends JInternalFrame }); JMenuItem showAllColumns = new JMenuItem( MessageManager.getString("label.all_columns")); - showAllColumns.setToolTipText(MessageManager - .getString("label.toggle_columns_visibility")); + showAllColumns.setToolTipText( + MessageManager.getString("label.toggle_columns_visibility")); showAllColumns.addActionListener(new ActionListener() { @Override @@ -1479,8 +1499,8 @@ public class GAlignFrame extends JInternalFrame 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.setToolTipText( + MessageManager.getString("label.toggle_sequence_visibility")); hideSelSequences.addActionListener(new ActionListener() { @Override @@ -1491,8 +1511,8 @@ public class GAlignFrame extends JInternalFrame }); JMenuItem hideSelColumns = new JMenuItem( MessageManager.getString("label.selected_columns")); - hideSelColumns.setToolTipText(MessageManager - .getString("label.toggle_columns_visibility")); + hideSelColumns.setToolTipText( + MessageManager.getString("label.toggle_columns_visibility")); hideSelColumns.addActionListener(new ActionListener() { @Override @@ -1534,8 +1554,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 @@ -1547,9 +1567,10 @@ public class GAlignFrame extends JInternalFrame JMenuItem invertColSel = new JMenuItem( MessageManager.getString("action.invert_column_selection")); - keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_I, Toolkit - .getDefaultToolkit().getMenuShortcutKeyMask() - | KeyEvent.ALT_MASK, false); + keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_I, + Platform.SHORTCUT_KEY_MASK + | InputEvent.ALT_DOWN_MASK, + false); al = new ActionListener() { @Override @@ -1610,8 +1631,8 @@ public class GAlignFrame extends JInternalFrame }); JMenuItem save = new JMenuItem(MessageManager.getString("action.save")); - keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_S, Toolkit - .getDefaultToolkit().getMenuShortcutKeyMask(), false); + keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_S, + Platform.SHORTCUT_KEY_MASK, false); al = new ActionListener() { @Override @@ -1635,8 +1656,8 @@ public class GAlignFrame extends JInternalFrame JMenuItem newView = new JMenuItem( MessageManager.getString("action.new_view")); - keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_T, Toolkit - .getDefaultToolkit().getMenuShortcutKeyMask(), false); + keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_T, + Platform.SHORTCUT_KEY_MASK, false); al = new ActionListener() { @Override @@ -1654,8 +1675,8 @@ public class GAlignFrame extends JInternalFrame formatMenu.setText(MessageManager.getString("action.format")); JMenu selectMenu = new JMenu(MessageManager.getString("action.select")); - idRightAlign.setText(MessageManager - .getString("label.right_align_sequence_id")); + idRightAlign.setText( + MessageManager.getString("label.right_align_sequence_id")); idRightAlign.addActionListener(new ActionListener() { @Override @@ -1713,8 +1734,8 @@ public class GAlignFrame extends JInternalFrame }); JMenuItem selectHighlighted = new JMenuItem( MessageManager.getString("action.select_highlighted_columns")); - selectHighlighted.setToolTipText(MessageManager - .getString("tooltip.select_highlighted_columns")); + selectHighlighted.setToolTipText(JvSwingUtils.wrapTooltip(true, + MessageManager.getString("tooltip.select_highlighted_columns"))); al = new ActionListener() { @Override @@ -1740,7 +1761,10 @@ 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); @@ -1758,6 +1782,10 @@ public class GAlignFrame extends JInternalFrame fileMenu.add(exportAnnotations); fileMenu.add(loadTreeMenuItem); fileMenu.add(associatedData); + if (!Platform.isJS()) + { + fileMenu.add(loadVcf); + } fileMenu.addSeparator(); fileMenu.add(closeMenuItem); @@ -1833,7 +1861,6 @@ public class GAlignFrame extends JInternalFrame autoAnnMenu.add(showGroupConsensus); annotationsMenu.add(autoAnnMenu); - sort.add(sortIDMenuItem); sort.add(sortLengthMenuItem); sort.add(sortGroupMenuItem); @@ -1843,7 +1870,6 @@ public class GAlignFrame extends JInternalFrame calculateMenu.add(calculateTree); calculateMenu.addSeparator(); calculateMenu.add(pairwiseAlignmentMenuItem); - calculateMenu.add(PCAMenuItem); calculateMenu.addSeparator(); calculateMenu.add(showTranslation); calculateMenu.add(showReverse); @@ -1854,17 +1880,26 @@ public class GAlignFrame extends JInternalFrame calculateMenu.addSeparator(); calculateMenu.add(expandAlignment); calculateMenu.add(extractScores); - calculateMenu.addSeparator(); - calculateMenu.add(runGroovy); + if (!Platform.isJS()) + { + calculateMenu.addSeparator(); + calculateMenu.add(runGroovy); + } webServiceNoServices = new JMenuItem( MessageManager.getString("label.no_services")); webService.add(webServiceNoServices); - exportImageMenu.add(htmlMenuItem); + if (!Platform.isJS()) + { + exportImageMenu.add(htmlMenuItem); + } exportImageMenu.add(epsFile); exportImageMenu.add(createPNG); - exportImageMenu.add(createBioJS); - exportImageMenu.add(createSVG); + if (!Platform.isJS()) + { + exportImageMenu.add(createBioJS); + exportImageMenu.add(createSVG); + } addSequenceMenu.add(addFromFile); addSequenceMenu.add(addFromText); addSequenceMenu.add(addFromURL); @@ -1905,10 +1940,12 @@ public class GAlignFrame extends JInternalFrame // selectMenu.add(listenToViewSelections); } - protected void configureSelectMenu() + protected void enableSortMenuOptions() + { + } + + protected void loadVcf_actionPerformed() { - // TODO Auto-generated method stub - } /** @@ -1928,8 +1965,8 @@ public class GAlignFrame extends JInternalFrame } }); - textColour = new JRadioButtonMenuItem( - MessageManager.getString("action.set_text_colour")); + textColour = new JMenuItem( + MessageManager.getString("label.text_colour")); textColour.addActionListener(new ActionListener() { @Override @@ -1946,8 +1983,8 @@ public class GAlignFrame extends JInternalFrame @Override public void actionPerformed(ActionEvent e) { - conservationMenuItem_actionPerformed(conservationMenuItem - .isSelected()); + conservationMenuItem_actionPerformed( + conservationMenuItem.isSelected()); } }); @@ -1971,8 +2008,7 @@ public class GAlignFrame extends JInternalFrame modifyPID_actionPerformed(); } }); - modifyConservation = new JMenuItem( - MessageManager + modifyConservation = new JMenuItem(MessageManager .getString("label.modify_conservation_threshold")); modifyConservation.addActionListener(new ActionListener() { @@ -1983,8 +2019,9 @@ public class GAlignFrame extends JInternalFrame } }); - annotationColour = new JMenuItem( + annotationColour = new JRadioButtonMenuItem( MessageManager.getString("action.by_annotation")); + annotationColour.setName(ResidueColourScheme.ANNOTATION_COLOUR); annotationColour.addActionListener(new ActionListener() { @Override @@ -2204,7 +2241,7 @@ public class GAlignFrame extends JInternalFrame { } - protected void outputText_actionPerformed(ActionEvent e) + protected void outputText_actionPerformed(String formatName) { } @@ -2330,26 +2367,10 @@ 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 conservationMenuItem_actionPerformed(boolean selected) { } @@ -2386,15 +2407,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() { } @@ -2478,7 +2499,7 @@ public class GAlignFrame extends JInternalFrame { } - protected void saveAs_actionPerformed(ActionEvent e) + protected void saveAs_actionPerformed() { } @@ -2496,7 +2517,7 @@ public class GAlignFrame extends JInternalFrame } - public void showTranslation_actionPerformed(ActionEvent e) + public void showTranslation_actionPerformed(GeneticCodeI codeTable) { } @@ -2506,7 +2527,7 @@ public class GAlignFrame extends JInternalFrame } - public void fetchSequence_actionPerformed(ActionEvent e) + public void fetchSequence_actionPerformed() { } @@ -2634,7 +2655,7 @@ public class GAlignFrame extends JInternalFrame } - public void buildTreeMenu() + public void buildTreeSortMenu() { } @@ -2721,4 +2742,6 @@ public class GAlignFrame extends JInternalFrame protected void showComplement_actionPerformed(boolean complement) { } + + }