X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fjbgui%2FGAlignFrame.java;h=fba0efa1881dc3d1401b364d60c56fe969298a6e;hb=92d5aeaf6d48b15a8122060f7dd32f16d2f552dc;hp=d2cb5a264176ba0674d5c0e5c05b119bfafc3361;hpb=fee1b781ca14aadea5d112fc554fe14879c787c5;p=jalview.git diff --git a/src/jalview/jbgui/GAlignFrame.java b/src/jalview/jbgui/GAlignFrame.java index d2cb5a2..fba0efa 100755 --- a/src/jalview/jbgui/GAlignFrame.java +++ b/src/jalview/jbgui/GAlignFrame.java @@ -23,14 +23,21 @@ package jalview.jbgui; import jalview.analysis.AnnotationSorter.SequenceAnnotationOrder; import jalview.api.SplitContainerI; import jalview.bin.Cache; +import jalview.gui.Desktop; import jalview.gui.JvOptionPane; import jalview.gui.JvSwingUtils; import jalview.gui.Preferences; -import jalview.schemes.ColourSchemeProperty; +import jalview.gui.UserDefinedColours; +import jalview.io.FileFormat; +import jalview.schemes.JalviewColourScheme; +import jalview.schemes.ResidueColourScheme; +import jalview.schemes.UserColourScheme; 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; @@ -71,9 +78,9 @@ public class GAlignFrame extends JInternalFrame protected JMenuItem webServiceNoServices; - public JCheckBoxMenuItem viewBoxesMenuItem = new JCheckBoxMenuItem(); + protected JCheckBoxMenuItem viewBoxesMenuItem = new JCheckBoxMenuItem(); - public JCheckBoxMenuItem viewTextMenuItem = new JCheckBoxMenuItem(); + protected JCheckBoxMenuItem viewTextMenuItem = new JCheckBoxMenuItem(); protected JMenu sortByAnnotScore = new JMenu(); @@ -81,58 +88,59 @@ public class GAlignFrame extends JInternalFrame protected JMenu outputTextboxMenu = new JMenu(); - protected JRadioButtonMenuItem clustalColour = new JRadioButtonMenuItem(); + protected JRadioButtonMenuItem textColour; - protected JRadioButtonMenuItem zappoColour = new JRadioButtonMenuItem(); + protected JRadioButtonMenuItem clustalColour; - protected JRadioButtonMenuItem taylorColour = new JRadioButtonMenuItem(); + protected JRadioButtonMenuItem zappoColour; - protected JRadioButtonMenuItem hydrophobicityColour = new JRadioButtonMenuItem(); + protected JRadioButtonMenuItem taylorColour; - protected JRadioButtonMenuItem helixColour = new JRadioButtonMenuItem(); + protected JRadioButtonMenuItem hydrophobicityColour; - protected JRadioButtonMenuItem strandColour = new JRadioButtonMenuItem(); + protected JRadioButtonMenuItem helixColour; - protected JRadioButtonMenuItem turnColour = new JRadioButtonMenuItem(); + protected JRadioButtonMenuItem strandColour; - protected JRadioButtonMenuItem buriedColour = new JRadioButtonMenuItem(); + protected JRadioButtonMenuItem turnColour; - protected JRadioButtonMenuItem userDefinedColour = new JRadioButtonMenuItem(); + protected JRadioButtonMenuItem buriedColour; - protected JRadioButtonMenuItem PIDColour = new JRadioButtonMenuItem(); + protected JRadioButtonMenuItem userDefinedColour; - protected JRadioButtonMenuItem BLOSUM62Colour = new JRadioButtonMenuItem(); + protected JRadioButtonMenuItem PIDColour; - protected JRadioButtonMenuItem nucleotideColour = new JRadioButtonMenuItem(); + protected JRadioButtonMenuItem BLOSUM62Colour; - protected JRadioButtonMenuItem purinePyrimidineColour = new JRadioButtonMenuItem(); + protected JRadioButtonMenuItem nucleotideColour; - protected JRadioButtonMenuItem RNAInteractionColour = new JRadioButtonMenuItem(); + protected JRadioButtonMenuItem purinePyrimidineColour; - // protected JRadioButtonMenuItem covariationColour = new - // JRadioButtonMenuItem(); + protected JRadioButtonMenuItem RNAInteractionColour; - protected JRadioButtonMenuItem tcoffeeColour = new JRadioButtonMenuItem(); + // protected JRadioButtonMenuItem covariationColour; - public JCheckBoxMenuItem annotationPanelMenuItem = new JCheckBoxMenuItem(); + protected JRadioButtonMenuItem tcoffeeColour; - public JCheckBoxMenuItem colourTextMenuItem = new JCheckBoxMenuItem(); + protected JCheckBoxMenuItem annotationPanelMenuItem = new JCheckBoxMenuItem(); - public JCheckBoxMenuItem showNonconservedMenuItem = new JCheckBoxMenuItem(); + protected JCheckBoxMenuItem colourTextMenuItem = new JCheckBoxMenuItem(); + + protected JCheckBoxMenuItem showNonconservedMenuItem = new JCheckBoxMenuItem(); protected JMenuItem undoMenuItem = new JMenuItem(); protected JMenuItem redoMenuItem = new JMenuItem(); - public JCheckBoxMenuItem conservationMenuItem = new JCheckBoxMenuItem(); + protected JCheckBoxMenuItem conservationMenuItem; - JRadioButtonMenuItem noColourmenuItem = new JRadioButtonMenuItem(); + JRadioButtonMenuItem noColourmenuItem; - public JCheckBoxMenuItem wrapMenuItem = new JCheckBoxMenuItem(); + protected JCheckBoxMenuItem wrapMenuItem = new JCheckBoxMenuItem(); - public JCheckBoxMenuItem renderGapsMenuItem = new JCheckBoxMenuItem(); + protected JCheckBoxMenuItem renderGapsMenuItem = new JCheckBoxMenuItem(); - public JCheckBoxMenuItem abovePIDThreshold = new JCheckBoxMenuItem(); + protected JCheckBoxMenuItem abovePIDThreshold; public JCheckBoxMenuItem showSeqFeatures = new JCheckBoxMenuItem(); @@ -142,17 +150,21 @@ public class GAlignFrame extends JInternalFrame JMenu pasteMenu = new JMenu(); - public JCheckBoxMenuItem applyToAllGroups = new JCheckBoxMenuItem(); + protected JCheckBoxMenuItem applyToAllGroups; + + protected JCheckBoxMenuItem seqLimits = new JCheckBoxMenuItem(); - public JCheckBoxMenuItem seqLimits = new JCheckBoxMenuItem(); + protected JCheckBoxMenuItem scaleAbove = new JCheckBoxMenuItem(); - public JCheckBoxMenuItem scaleAbove = new JCheckBoxMenuItem(); + protected JCheckBoxMenuItem scaleLeft = new JCheckBoxMenuItem(); - public JCheckBoxMenuItem scaleLeft = new JCheckBoxMenuItem(); + protected JCheckBoxMenuItem scaleRight = new JCheckBoxMenuItem(); - public JCheckBoxMenuItem scaleRight = new JCheckBoxMenuItem(); + protected JMenuItem modifyPID; - protected JMenuItem modifyConservation = new JMenuItem(); + protected JMenuItem modifyConservation; + + protected JMenuItem annotationColour; protected JMenu sortByTreeMenu = new JMenu(); @@ -178,7 +190,7 @@ public class GAlignFrame extends JInternalFrame protected JMenuItem runGroovy = new JMenuItem(); - protected JMenuItem rnahelicesColour = new JMenuItem(); + protected JMenuItem rnahelicesColour; protected JCheckBoxMenuItem autoCalculate = new JCheckBoxMenuItem(); @@ -244,10 +256,9 @@ public class GAlignFrame extends JInternalFrame 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 : FileFormat.getWritableFormats(true)) { - JMenuItem item = new JMenuItem( - jalview.io.FormatAdapter.WRITEABLE_FORMATS[i]); + JMenuItem item = new JMenuItem(ff); item.addActionListener(new ActionListener() { @@ -265,7 +276,7 @@ public class GAlignFrame extends JInternalFrame System.err.println(e.toString()); } - if (!jalview.util.Platform.isAMac()) + if (!Platform.isAMac()) { closeMenuItem.setMnemonic('C'); outputTextboxMenu.setMnemonic('T'); @@ -276,201 +287,44 @@ 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.isPopupTrigger()) // Mac - { - offerRemoval(radioItem); - } - } - - @Override - public void mouseReleased(MouseEvent evt) - { - if (evt.isPopupTrigger()) // Windows - { - offerRemoval(radioItem); - } - } - - /** - * @param radioItem - */ - void offerRemoval(final JRadioButtonMenuItem radioItem) - { - radioItem.removeActionListener(radioItem.getActionListeners()[0]); - - int option = JvOptionPane.showInternalConfirmDialog( - jalview.gui.Desktop.desktop, MessageManager - .getString("label.remove_from_default_list"), - MessageManager - .getString("label.remove_user_defined_colour"), - JvOptionPane.YES_NO_OPTION); - if (option == JvOptionPane.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( - Preferences.DEFAULT_COLOUR, "None")); } - public void setColourSelected(String defaultColour) + /** + * Marks as selected the colour menu item matching the given name, or the + * first item ('None') if no match is found + * + * @param colourName + */ + protected void setColourSelected(String colourName) { - - if (defaultColour != null) + noColourmenuItem.setSelected(true); + if (colourName == null) { - int index = ColourSchemeProperty - .getColourIndexFromName(defaultColour); + return; + } - switch (index) + /* + * look for a radio button with a name that matches the colour name + * (note the button text may not as it may be internationalised) + */ + for (Component menuItem : colourMenu.getMenuComponents()) + { + if (menuItem instanceof JRadioButtonMenuItem) { - 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); - - break; - case ColourSchemeProperty.NONE: - default: - noColourmenuItem.setSelected(true); - break; - + if (colourName.equals(((JRadioButtonMenuItem) menuItem).getName())) + { + ((JRadioButtonMenuItem) menuItem).setSelected(true); + return; + } } } - } private void jbInit() throws Exception { + initColourMenu(); + buildColourMenu(); + JMenuItem saveAs = new JMenuItem( MessageManager.getString("action.save_as")); ActionListener al = new ActionListener() @@ -481,6 +335,8 @@ public class GAlignFrame extends JInternalFrame saveAs_actionPerformed(e); } }; + + // FIXME getDefaultToolkit throws an exception in Headless mode KeyStroke keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_S, Toolkit .getDefaultToolkit().getMenuShortcutKeyMask() | KeyEvent.SHIFT_MASK, false); @@ -669,7 +525,7 @@ public class GAlignFrame extends JInternalFrame } }); showNonconservedMenuItem.setText(MessageManager - .getString("label.show_non_conversed")); + .getString("label.show_non_conserved")); showNonconservedMenuItem.setState(false); showNonconservedMenuItem.addActionListener(new ActionListener() { @@ -783,146 +639,7 @@ public class GAlignFrame extends JInternalFrame statusBar.setText(MessageManager.getString("label.status_bar")); outputTextboxMenu.setText(MessageManager .getString("label.out_to_textbox")); - clustalColour.setText(MessageManager.getString("label.clustalx")); - clustalColour.addActionListener(new ActionListener() - { - @Override - public void actionPerformed(ActionEvent e) - { - clustalColour_actionPerformed(e); - } - }); - zappoColour.setText(MessageManager.getString("label.zappo")); - zappoColour.addActionListener(new ActionListener() - { - @Override - public void actionPerformed(ActionEvent e) - { - zappoColour_actionPerformed(e); - } - }); - taylorColour.setText(MessageManager.getString("label.taylor")); - taylorColour.addActionListener(new ActionListener() - { - @Override - public void actionPerformed(ActionEvent e) - { - taylorColour_actionPerformed(e); - } - }); - hydrophobicityColour.setText(MessageManager - .getString("label.hydrophobicity")); - hydrophobicityColour.addActionListener(new ActionListener() - { - @Override - public void actionPerformed(ActionEvent e) - { - hydrophobicityColour_actionPerformed(e); - } - }); - helixColour.setText(MessageManager.getString("label.helix_propensity")); - helixColour.addActionListener(new ActionListener() - { - @Override - public void actionPerformed(ActionEvent e) - { - helixColour_actionPerformed(e); - } - }); - strandColour.setText(MessageManager - .getString("label.strand_propensity")); - strandColour.addActionListener(new ActionListener() - { - @Override - public void actionPerformed(ActionEvent e) - { - strandColour_actionPerformed(e); - } - }); - turnColour.setText(MessageManager.getString("label.turn_propensity")); - turnColour.addActionListener(new ActionListener() - { - @Override - public void actionPerformed(ActionEvent e) - { - turnColour_actionPerformed(e); - } - }); - buriedColour.setText(MessageManager.getString("label.buried_index")); - buriedColour.addActionListener(new ActionListener() - { - @Override - public void actionPerformed(ActionEvent e) - { - buriedColour_actionPerformed(e); - } - }); - userDefinedColour.setText(MessageManager - .getString("action.user_defined")); - userDefinedColour.addActionListener(new ActionListener() - { - @Override - public void actionPerformed(ActionEvent e) - { - userDefinedColour_actionPerformed(e); - } - }); - PIDColour - .setText(MessageManager.getString("label.percentage_identity")); - PIDColour.addActionListener(new ActionListener() - { - @Override - public void actionPerformed(ActionEvent e) - { - PIDColour_actionPerformed(e); - } - }); - BLOSUM62Colour - .setText(MessageManager.getString("label.blosum62_score")); - BLOSUM62Colour.addActionListener(new ActionListener() - { - @Override - public void actionPerformed(ActionEvent e) - { - BLOSUM62Colour_actionPerformed(e); - } - }); - nucleotideColour.setText(MessageManager.getString("label.nucleotide")); - nucleotideColour.addActionListener(new ActionListener() - { - @Override - public void actionPerformed(ActionEvent e) - { - nucleotideColour_actionPerformed(e); - } - }); - - purinePyrimidineColour.setText(MessageManager - .getString("label.purine_pyrimidine")); - purinePyrimidineColour.addActionListener(new ActionListener() - { - @Override - public void actionPerformed(ActionEvent e) - { - purinePyrimidineColour_actionPerformed(e); - } - }); - RNAInteractionColour.setText("RNA Interaction type"); - RNAInteractionColour.addActionListener(new ActionListener() - { - @Override - public void actionPerformed(ActionEvent e) - { - RNAInteractionColour_actionPerformed(e); - } - }); - /* - * covariationColour.setText("Covariation"); - * covariationColour.addActionListener(new ActionListener() { public void - * actionPerformed(ActionEvent e) { covariationColour_actionPerformed(e); } - * }); - */ JMenuItem avDistanceTreeBlosumMenuItem = new JMenuItem( MessageManager.getString("label.average_distance_bloslum62")); @@ -1039,7 +756,8 @@ public class GAlignFrame extends JInternalFrame sortAnnotations_actionPerformed(); } }); - colourTextMenuItem.setText(MessageManager + colourTextMenuItem = new JCheckBoxMenuItem( + MessageManager .getString("label.colour_text")); colourTextMenuItem.addActionListener(new ActionListener() { @@ -1111,25 +829,6 @@ public class GAlignFrame extends JInternalFrame }; addMenuActionAndAccelerator(keyStroke, redoMenuItem, al); - conservationMenuItem.setText(MessageManager - .getString("action.by_conservation")); - conservationMenuItem.addActionListener(new ActionListener() - { - @Override - public void actionPerformed(ActionEvent e) - { - conservationMenuItem_actionPerformed(e); - } - }); - noColourmenuItem.setText(MessageManager.getString("label.none")); - noColourmenuItem.addActionListener(new ActionListener() - { - @Override - public void actionPerformed(ActionEvent e) - { - noColourmenuItem_actionPerformed(e); - } - }); wrapMenuItem.setText(MessageManager.getString("label.wrap")); wrapMenuItem.addActionListener(new ActionListener() { @@ -1182,16 +881,6 @@ public class GAlignFrame extends JInternalFrame }; addMenuActionAndAccelerator(keyStroke, findMenuItem, al); - abovePIDThreshold.setText(MessageManager - .getString("label.above_identity_threshold")); - abovePIDThreshold.addActionListener(new ActionListener() - { - @Override - public void actionPerformed(ActionEvent e) - { - abovePIDThreshold_actionPerformed(e); - } - }); showSeqFeatures.setText(MessageManager .getString("label.show_sequence_features")); showSeqFeatures.addActionListener(new ActionListener() @@ -1337,42 +1026,31 @@ public class GAlignFrame extends JInternalFrame } }); - nucleotideColour.setText(MessageManager.getString("label.nucleotide")); - nucleotideColour.addActionListener(new ActionListener() + JMenuItem deleteGroups = new JMenuItem( + MessageManager.getString("action.undefine_groups")); + keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_U, Toolkit + .getDefaultToolkit().getMenuShortcutKeyMask(), 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); } }); - JMenuItem deleteGroups = new JMenuItem( - MessageManager.getString("action.undefine_groups")); - keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_U, Toolkit - .getDefaultToolkit().getMenuShortcutKeyMask(), false); - al = new ActionListener() - { - @Override - public void actionPerformed(ActionEvent e) - { - deleteGroups_actionPerformed(e); - } - }; - addMenuActionAndAccelerator(keyStroke, deleteGroups, al); - JMenuItem createGroup = new JMenuItem( MessageManager.getString("action.create_groups")); keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_G, Toolkit @@ -1470,16 +1148,6 @@ public class GAlignFrame extends JInternalFrame }; addMenuActionAndAccelerator(keyStroke, pasteThis, al); - applyToAllGroups.setText(MessageManager - .getString("label.apply_colour_to_all_groups")); - applyToAllGroups.addActionListener(new ActionListener() - { - @Override - public void actionPerformed(ActionEvent e) - { - applyToAllGroups_actionPerformed(e); - } - }); JMenuItem createPNG = new JMenuItem("PNG"); createPNG.addActionListener(new ActionListener() { @@ -1604,26 +1272,6 @@ public class GAlignFrame extends JInternalFrame }); - JMenuItem modifyPID = new JMenuItem( - MessageManager.getString("label.modify_identity_threshold")); - modifyPID.addActionListener(new ActionListener() - { - @Override - public void actionPerformed(ActionEvent e) - { - modifyPID_actionPerformed(e); - } - }); - modifyConservation.setText(MessageManager - .getString("label.modify_conservation_threshold")); - modifyConservation.addActionListener(new ActionListener() - { - @Override - public void actionPerformed(ActionEvent e) - { - modifyConservation_actionPerformed(e); - } - }); sortByTreeMenu .setText(MessageManager.getString("action.by_tree_order")); sort.setText(MessageManager.getString("action.sort")); @@ -1773,39 +1421,6 @@ public class GAlignFrame extends JInternalFrame } }); - JMenuItem annotationColour = new JMenuItem( - MessageManager.getString("action.by_annotation")); - annotationColour.addActionListener(new ActionListener() - { - @Override - public void actionPerformed(ActionEvent e) - { - annotationColour_actionPerformed(e); - } - }); - - JMenuItem annotationColumn = new JMenuItem( - MessageManager.getString("action.select_by_annotation")); - annotationColumn.addActionListener(new ActionListener() - { - @Override - public void actionPerformed(ActionEvent e) - { - annotationColumn_actionPerformed(e); - } - }); - - rnahelicesColour.setText(MessageManager - .getString("action.by_rna_helixes")); - rnahelicesColour.addActionListener(new ActionListener() - { - @Override - public void actionPerformed(ActionEvent e) - { - rnahelicesColour_actionPerformed(e); - } - }); - JMenuItem associatedData = new JMenuItem( MessageManager.getString("label.load_features_annotations")); associatedData.addActionListener(new ActionListener() @@ -2112,16 +1727,7 @@ public class GAlignFrame extends JInternalFrame tabbedPane.setToolTipText("" + MessageManager.getString("label.rename_tab_eXpand_reGroup") + ""); - JMenuItem textColour = new JMenuItem( - MessageManager.getString("action.set_text_colour")); - textColour.addActionListener(new ActionListener() - { - @Override - public void actionPerformed(ActionEvent e) - { - textColour_actionPerformed(e); - } - }); + formatMenu.setText(MessageManager.getString("action.format")); JMenu selectMenu = new JMenu(MessageManager.getString("action.select")); idRightAlign.setText(MessageManager @@ -2303,33 +1909,6 @@ public class GAlignFrame extends JInternalFrame autoAnnMenu.add(showGroupConsensus); annotationsMenu.add(autoAnnMenu); - 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); @@ -2402,6 +1981,429 @@ public class GAlignFrame extends JInternalFrame // selectMenu.add(listenToViewSelections); } + /** + * Rebuilds the Colour menu, including any user-defined colours which have + * been loaded either on startup or during the session + */ + public void buildColourMenu() + { + colourMenu.removeAll(); + colours = new ButtonGroup(); + + 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); + + /* + * add any user-defined colours + */ + Map userColourSchemes = UserDefinedColours + .getUserColourSchemes(); + if (userColourSchemes != null) + { + for (String userColour : userColourSchemes.keySet()) + { + final JRadioButtonMenuItem radioItem = new JRadioButtonMenuItem( + userColour); + radioItem.setName(userColour); + radioItem.addMouseListener(new MouseAdapter() + { + @Override + public void mousePressed(MouseEvent evt) + { + if (evt.isPopupTrigger()) // Mac + { + offerRemoval(); + } + } + + @Override + public void mouseReleased(MouseEvent evt) + { + if (evt.isPopupTrigger()) // Windows + { + offerRemoval(); + } + } + + void offerRemoval() + { + radioItem.removeActionListener(radioItem.getActionListeners()[0]); + + int option = JvOptionPane.showInternalConfirmDialog( + Desktop.desktop, MessageManager + .getString("label.remove_from_default_list"), + MessageManager + .getString("label.remove_user_defined_colour"), + JvOptionPane.YES_NO_OPTION); + if (option == JvOptionPane.YES_OPTION) + { + 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.add(radioItem); + colours.add(radioItem); + } + } + + colourMenu.add(userDefinedColour); + colourMenu.addSeparator(); + colourMenu.add(conservationMenuItem); + colourMenu.add(modifyConservation); + colourMenu.add(abovePIDThreshold); + colourMenu.add(modifyPID); + colourMenu.add(annotationColour); + colourMenu.add(rnahelicesColour); + + /* + * add colours to a ButtonGroup to make their + * selection mutually exclusive + */ + 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(Cache.getDefault(Preferences.DEFAULT_COLOUR, + ResidueColourScheme.NONE)); + + } + + /** + * Constructs the entries on the Colour menu (but does not add them to the + * menu). The 'name' property of each item is set to the canonical name of the + * corresponding colour scheme (may not match the display name), to allow + * selection of items by colour scheme name. + */ + 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(); + } + }); + + textColour = new JRadioButtonMenuItem( + MessageManager.getString("action.set_text_colour")); + textColour.addActionListener(new ActionListener() + { + @Override + public void actionPerformed(ActionEvent e) + { + textColour_actionPerformed(); + } + }); + clustalColour = new JRadioButtonMenuItem( + MessageManager.getString("label.clustalx")); + clustalColour.setName(JalviewColourScheme.Clustal.toString()); + clustalColour.addActionListener(new ActionListener() + { + @Override + public void actionPerformed(ActionEvent e) + { + clustalColour_actionPerformed(); + } + }); + zappoColour = new JRadioButtonMenuItem( + MessageManager.getString("label.zappo")); + zappoColour.setName(JalviewColourScheme.Zappo.toString()); + zappoColour.addActionListener(new ActionListener() + { + @Override + public void actionPerformed(ActionEvent e) + { + zappoColour_actionPerformed(); + } + }); + taylorColour = new JRadioButtonMenuItem( + MessageManager.getString("label.taylor")); + taylorColour.setName(JalviewColourScheme.Taylor.toString()); + taylorColour.addActionListener(new ActionListener() + { + @Override + public void actionPerformed(ActionEvent e) + { + taylorColour_actionPerformed(); + } + }); + hydrophobicityColour = new JRadioButtonMenuItem( + MessageManager + .getString("label.hydrophobicity")); + hydrophobicityColour + .setName(JalviewColourScheme.Hydrophobic.toString()); + hydrophobicityColour.addActionListener(new ActionListener() + { + @Override + public void actionPerformed(ActionEvent e) + { + hydrophobicityColour_actionPerformed(); + } + }); + helixColour = new JRadioButtonMenuItem( + MessageManager.getString("label.helix_propensity")); + helixColour.setName(JalviewColourScheme.Helix.toString()); + helixColour.addActionListener(new ActionListener() + { + @Override + public void actionPerformed(ActionEvent e) + { + helixColour_actionPerformed(); + } + }); + strandColour = new JRadioButtonMenuItem( + MessageManager + .getString("label.strand_propensity")); + strandColour.setName(JalviewColourScheme.Strand.toString()); + strandColour.addActionListener(new ActionListener() + { + @Override + public void actionPerformed(ActionEvent e) + { + strandColour_actionPerformed(); + } + }); + turnColour = new JRadioButtonMenuItem( + MessageManager.getString("label.turn_propensity")); + turnColour.setName(JalviewColourScheme.Turn.toString()); + turnColour.addActionListener(new ActionListener() + { + @Override + public void actionPerformed(ActionEvent e) + { + turnColour_actionPerformed(); + } + }); + buriedColour = new JRadioButtonMenuItem( + MessageManager.getString("label.buried_index")); + buriedColour.setName(JalviewColourScheme.Buried.toString()); + buriedColour.addActionListener(new ActionListener() + { + @Override + public void actionPerformed(ActionEvent e) + { + buriedColour_actionPerformed(); + } + }); + userDefinedColour = new JRadioButtonMenuItem( + MessageManager + .getString("action.user_defined")); + userDefinedColour.setName(JalviewColourScheme.UserDefined.toString()); + userDefinedColour.addActionListener(new ActionListener() + { + @Override + public void actionPerformed(ActionEvent e) + { + userDefinedColour_actionPerformed(e); + } + }); + PIDColour = new JRadioButtonMenuItem( + MessageManager.getString("label.percentage_identity")); + PIDColour.setName(JalviewColourScheme.PID.toString()); + PIDColour.addActionListener(new ActionListener() + { + @Override + public void actionPerformed(ActionEvent e) + { + PIDColour_actionPerformed(); + } + }); + BLOSUM62Colour = new JRadioButtonMenuItem( + MessageManager.getString("label.blosum62_score")); + BLOSUM62Colour.setName(JalviewColourScheme.Blosum62.toString()); + BLOSUM62Colour.addActionListener(new ActionListener() + { + @Override + public void actionPerformed(ActionEvent e) + { + BLOSUM62Colour_actionPerformed(); + } + }); + nucleotideColour = new JRadioButtonMenuItem( + MessageManager.getString("label.nucleotide")); + nucleotideColour.setName(JalviewColourScheme.Nucleotide.toString()); + nucleotideColour.addActionListener(new ActionListener() + { + @Override + public void actionPerformed(ActionEvent e) + { + nucleotideColour_actionPerformed(); + } + }); + purinePyrimidineColour = new JRadioButtonMenuItem( + MessageManager.getString("label.purine_pyrimidine")); + purinePyrimidineColour.setName(JalviewColourScheme.PurinePyrimidine.toString()); + purinePyrimidineColour.addActionListener(new ActionListener() + { + @Override + public void actionPerformed(ActionEvent e) + { + purinePyrimidineColour_actionPerformed(); + } + }); + + tcoffeeColour = new JRadioButtonMenuItem( + MessageManager.getString("label.tcoffee_scores")); + tcoffeeColour.setName(JalviewColourScheme.TCoffee.toString()); + tcoffeeColour.setEnabled(false); + tcoffeeColour.addActionListener(new ActionListener() + { + + @Override + public void actionPerformed(ActionEvent e) + { + tcoffeeColorScheme_actionPerformed(); + } + }); + + // RNAInteractionColour = new JRadioButtonMenuItem("RNA Interaction type"); + // RNAInteractionColour.setName("RNA Interaction"); + // RNAInteractionColour.addActionListener(new ActionListener() + // { + // @Override + // public void actionPerformed(ActionEvent e) + // { + // RNAInteractionColour_actionPerformed(); + // } + // }); + /* + * covariationColour = new JRadioButtonMenuItem("Covariation"); + * covariationColour.addActionListener(new ActionListener() { public void + * actionPerformed(ActionEvent e) { covariationColour_actionPerformed(); } + * }); + */ + + conservationMenuItem = new JCheckBoxMenuItem( + MessageManager.getString("action.by_conservation")); + conservationMenuItem.addActionListener(new ActionListener() + { + @Override + public void actionPerformed(ActionEvent e) + { + conservationMenuItem_actionPerformed(); + } + }); + noColourmenuItem = new JRadioButtonMenuItem( + MessageManager.getString("label.none")); + noColourmenuItem.setName("None"); + noColourmenuItem.addActionListener(new ActionListener() + { + @Override + public void actionPerformed(ActionEvent e) + { + noColourmenuItem_actionPerformed(); + } + }); + + abovePIDThreshold = new JCheckBoxMenuItem( + MessageManager.getString("label.above_identity_threshold")); + abovePIDThreshold.addActionListener(new ActionListener() + { + @Override + public void actionPerformed(ActionEvent e) + { + abovePIDThreshold_actionPerformed(); + } + }); + 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 JMenuItem( + MessageManager.getString("action.by_annotation")); + annotationColour.addActionListener(new ActionListener() + { + @Override + public void actionPerformed(ActionEvent e) + { + annotationColour_actionPerformed(); + } + }); + + rnahelicesColour = new JMenuItem( + MessageManager.getString("action.by_rna_helixes")); + rnahelicesColour.addActionListener(new ActionListener() + { + @Override + public void actionPerformed(ActionEvent e) + { + rnahelicesColour_actionPerformed(); + } + }); + } + protected void selectHighlightedColumns_actionPerformed( ActionEvent actionEvent) { @@ -2757,35 +2759,35 @@ public class GAlignFrame extends JInternalFrame { } - protected void clustalColour_actionPerformed(ActionEvent e) + protected void clustalColour_actionPerformed() { } - protected void zappoColour_actionPerformed(ActionEvent e) + protected void zappoColour_actionPerformed() { } - protected void taylorColour_actionPerformed(ActionEvent e) + protected void taylorColour_actionPerformed() { } - protected void hydrophobicityColour_actionPerformed(ActionEvent e) + protected void hydrophobicityColour_actionPerformed() { } - protected void helixColour_actionPerformed(ActionEvent e) + protected void helixColour_actionPerformed() { } - protected void strandColour_actionPerformed(ActionEvent e) + protected void strandColour_actionPerformed() { } - protected void turnColour_actionPerformed(ActionEvent e) + protected void turnColour_actionPerformed() { } - protected void buriedColour_actionPerformed(ActionEvent e) + protected void buriedColour_actionPerformed() { } @@ -2793,31 +2795,31 @@ public class GAlignFrame extends JInternalFrame { } - protected void PIDColour_actionPerformed(ActionEvent e) + protected void PIDColour_actionPerformed() { } - protected void BLOSUM62Colour_actionPerformed(ActionEvent e) + protected void BLOSUM62Colour_actionPerformed() { } - protected void purinePyrimidineColour_actionPerformed(ActionEvent e) + protected void purinePyrimidineColour_actionPerformed() { } - protected void RNAInteractionColour_actionPerformed(ActionEvent e) + protected void RNAInteractionColour_actionPerformed() { } /* - * protected void covariationColour_actionPerformed(ActionEvent e) { } + * protected void covariationColour_actionPerformed() { } */ - protected void noColourmenuItem_actionPerformed(ActionEvent e) + protected void noColourmenuItem_actionPerformed() { } - protected void conservationMenuItem_actionPerformed(ActionEvent e) + protected void conservationMenuItem_actionPerformed() { } @@ -2833,7 +2835,7 @@ public class GAlignFrame extends JInternalFrame { } - protected void abovePIDThreshold_actionPerformed(ActionEvent e) + protected void abovePIDThreshold_actionPerformed() { } @@ -2841,7 +2843,7 @@ public class GAlignFrame extends JInternalFrame { } - protected void nucleotideColour_actionPerformed(ActionEvent e) + protected void nucleotideColour_actionPerformed() { } @@ -2877,7 +2879,7 @@ public class GAlignFrame extends JInternalFrame { } - protected void applyToAllGroups_actionPerformed(ActionEvent e) + protected void applyToAllGroups_actionPerformed() { } @@ -2929,11 +2931,8 @@ public class GAlignFrame extends JInternalFrame * Template method to handle the 'Color 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 tcoffeeColorScheme_actionPerformed() { } @@ -2954,11 +2953,11 @@ 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() { } @@ -3000,17 +2999,15 @@ public class GAlignFrame extends JInternalFrame } - public void annotationColour_actionPerformed(ActionEvent e) + public void annotationColour_actionPerformed() { - } public void annotationColumn_actionPerformed(ActionEvent e) { - } - public void rnahelicesColour_actionPerformed(ActionEvent e) + public void rnahelicesColour_actionPerformed() { } @@ -3105,7 +3102,7 @@ public class GAlignFrame extends JInternalFrame } - public void textColour_actionPerformed(ActionEvent e) + public void textColour_actionPerformed() { }