+ /**
+ * 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<String, UserColourScheme> userColourSchemes = UserDefinedColours
+ .getUserColourSchemes();
+ if (userColourSchemes != null)
+ {
+ for (String userColour : userColourSchemes.keySet())
+ {
+ final JRadioButtonMenuItem radioItem = new JRadioButtonMenuItem(
+ userColour);
+ radioItem.setName(USER_DEFINED_COLOUR_SCHEME);
+ 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)
+ */
+ 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.addActionListener(new ActionListener()
+ {
+ @Override
+ public void actionPerformed(ActionEvent e)
+ {
+ clustalColour_actionPerformed();
+ }
+ });
+ zappoColour = new JRadioButtonMenuItem(
+ MessageManager.getString("label.zappo"));
+ zappoColour.addActionListener(new ActionListener()
+ {
+ @Override
+ public void actionPerformed(ActionEvent e)
+ {
+ zappoColour_actionPerformed();
+ }
+ });
+ taylorColour = new JRadioButtonMenuItem(
+ MessageManager.getString("label.taylor"));
+ taylorColour.addActionListener(new ActionListener()
+ {
+ @Override
+ public void actionPerformed(ActionEvent e)
+ {
+ taylorColour_actionPerformed();
+ }
+ });
+ hydrophobicityColour = new JRadioButtonMenuItem(
+ MessageManager
+ .getString("label.hydrophobicity"));
+ hydrophobicityColour.addActionListener(new ActionListener()
+ {
+ @Override
+ public void actionPerformed(ActionEvent e)
+ {
+ hydrophobicityColour_actionPerformed();
+ }
+ });
+ helixColour = new JRadioButtonMenuItem(
+ MessageManager.getString("label.helix_propensity"));
+ helixColour.addActionListener(new ActionListener()
+ {
+ @Override
+ public void actionPerformed(ActionEvent e)
+ {
+ helixColour_actionPerformed();
+ }
+ });
+ strandColour = new JRadioButtonMenuItem(
+ MessageManager
+ .getString("label.strand_propensity"));
+ strandColour.addActionListener(new ActionListener()
+ {
+ @Override
+ public void actionPerformed(ActionEvent e)
+ {
+ strandColour_actionPerformed();
+ }
+ });
+ turnColour = new JRadioButtonMenuItem(
+ MessageManager.getString("label.turn_propensity"));
+ turnColour.addActionListener(new ActionListener()
+ {
+ @Override
+ public void actionPerformed(ActionEvent e)
+ {
+ turnColour_actionPerformed();
+ }
+ });
+ buriedColour = new JRadioButtonMenuItem(
+ MessageManager.getString("label.buried_index"));
+ buriedColour.addActionListener(new ActionListener()
+ {
+ @Override
+ public void actionPerformed(ActionEvent e)
+ {
+ buriedColour_actionPerformed();
+ }
+ });
+ userDefinedColour = new JRadioButtonMenuItem(
+ MessageManager
+ .getString("action.user_defined"));
+ userDefinedColour.addActionListener(new ActionListener()
+ {
+ @Override
+ public void actionPerformed(ActionEvent e)
+ {
+ userDefinedColour_actionPerformed(e);
+ }
+ });
+ PIDColour = new JRadioButtonMenuItem(
+ MessageManager.getString("label.percentage_identity"));
+ PIDColour.addActionListener(new ActionListener()
+ {
+ @Override
+ public void actionPerformed(ActionEvent e)
+ {
+ PIDColour_actionPerformed();
+ }
+ });
+ BLOSUM62Colour = new JRadioButtonMenuItem(
+ MessageManager.getString("label.blosum62_score"));
+ BLOSUM62Colour.addActionListener(new ActionListener()
+ {
+ @Override
+ public void actionPerformed(ActionEvent e)
+ {
+ BLOSUM62Colour_actionPerformed();
+ }
+ });
+ nucleotideColour = new JRadioButtonMenuItem(
+ MessageManager.getString("label.nucleotide"));
+ nucleotideColour.addActionListener(new ActionListener()
+ {
+ @Override
+ public void actionPerformed(ActionEvent e)
+ {
+ nucleotideColour_actionPerformed();
+ }
+ });
+ purinePyrimidineColour = new JRadioButtonMenuItem(
+ MessageManager.getString("label.purine_pyrimidine"));
+ purinePyrimidineColour.addActionListener(new ActionListener()
+ {
+ @Override
+ public void actionPerformed(ActionEvent e)
+ {
+ purinePyrimidineColour_actionPerformed();
+ }
+ });
+
+ tcoffeeColour = new JRadioButtonMenuItem(
+ MessageManager.getString("label.tcoffee_scores"));
+ tcoffeeColour.setEnabled(false);
+ tcoffeeColour.addActionListener(new ActionListener()
+ {
+
+ @Override
+ public void actionPerformed(ActionEvent e)
+ {
+ tcoffeeColorScheme_actionPerformed();
+ }
+ });
+
+ RNAInteractionColour = new JRadioButtonMenuItem("RNA Interaction type");
+ 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.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();
+ }
+ });
+ }
+