X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fappletgui%2FFeatureColourChooser.java;h=0d70660f67962c6383e48e0ec990b4fe54fc38a5;hb=d85a2741994c169e1b81db8f9166f5214ff1f561;hp=0d479f9a9538d74ee6752bac5d627e205607f923;hpb=3d0101179759ef157b088ea135423cd909512d9f;p=jalview.git diff --git a/src/jalview/appletgui/FeatureColourChooser.java b/src/jalview/appletgui/FeatureColourChooser.java index 0d479f9..0d70660 100644 --- a/src/jalview/appletgui/FeatureColourChooser.java +++ b/src/jalview/appletgui/FeatureColourChooser.java @@ -42,6 +42,8 @@ import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.AdjustmentEvent; import java.awt.event.AdjustmentListener; +import java.awt.event.FocusAdapter; +import java.awt.event.FocusEvent; import java.awt.event.ItemEvent; import java.awt.event.ItemListener; import java.awt.event.MouseEvent; @@ -56,6 +58,8 @@ public class FeatureColourChooser extends Panel implements ActionListener, */ private static final int SCALE_FACTOR_1K = 1000; + private static final String COLON = ":"; + private JVDialog frame; private Frame owner; @@ -130,7 +134,8 @@ public class FeatureColourChooser extends Panel implements ActionListener, if (oldcs.isGraduatedColour()) { threshline.value = oldcs.getThreshold(); - cs = new FeatureColour((FeatureColour) oldcs, min, max); + cs = new FeatureColour(oldcs.getColour(), oldcs.getMinColour(), + oldcs.getMaxColour(), oldcs.getNoColour(), min, max); } else { @@ -141,7 +146,8 @@ public class FeatureColourChooser extends Panel implements ActionListener, bl = oldcs.getColour(); } // original colour becomes the maximum colour - cs = new FeatureColour(Color.white, bl, mm[0], mm[1]); + cs = new FeatureColour(bl, Color.white, bl, Color.white, mm[0], + mm[1]); } minColour.setBackground(cs.getMinColour()); maxColour.setBackground(cs.getMaxColour()); @@ -165,9 +171,9 @@ public class FeatureColourChooser extends Panel implements ActionListener, slider.addAdjustmentListener(this); slider.addMouseListener(this); owner = (af != null) ? af : fs.frame; - frame = new JVDialog(owner, MessageManager - .formatMessage("label.graduated_color_for_params", new String[] - { type }), true, 480, 248); + frame = new JVDialog(owner, MessageManager.formatMessage( + "label.variable_color_for", new String[] { type }), true, 480, + 248); frame.setMainPanel(this); validate(); frame.setVisible(true); @@ -196,8 +202,10 @@ public class FeatureColourChooser extends Panel implements ActionListener, private void jbInit() throws Exception { - Label minLabel = new Label(MessageManager.getString("label.min")), - maxLabel = new Label(MessageManager.getString("label.max")); + Label minLabel = new Label( + MessageManager.getString("label.min_value") + COLON); + Label maxLabel = new Label( + MessageManager.getString("label.max_value") + COLON); minLabel.setFont(new java.awt.Font("Verdana", Font.PLAIN, 11)); maxLabel.setFont(new java.awt.Font("Verdana", Font.PLAIN, 11)); // minColour.setFont(new java.awt.Font("Verdana", Font.PLAIN, 11)); @@ -232,6 +240,14 @@ public class FeatureColourChooser extends Panel implements ActionListener, threshold.addItem(MessageManager .getString("label.threshold_feature_below_threshold")); thresholdValue.addActionListener(this); + thresholdValue.addFocusListener(new FocusAdapter() + { + @Override + public void focusLost(FocusEvent e) + { + thresholdValue_actionPerformed(); + } + }); slider.setBackground(Color.white); slider.setEnabled(false); slider.setSize(new Dimension(93, 21)); @@ -272,19 +288,7 @@ public class FeatureColourChooser extends Panel implements ActionListener, { if (evt.getSource() == thresholdValue) { - try - { - float f = new Float(thresholdValue.getText()).floatValue(); - slider.setValue((int) (f * SCALE_FACTOR_1K)); - adjustmentValueChanged(null); - - /* - * force repaint of any Overview window or structure - */ - changeColour(true); - } catch (NumberFormatException ex) - { - } + thresholdValue_actionPerformed(); } else if (evt.getSource() == minColour) { @@ -300,6 +304,26 @@ public class FeatureColourChooser extends Panel implements ActionListener, } } + /** + * Action on input of a value for colour score threshold + */ + protected void thresholdValue_actionPerformed() + { + try + { + float f = Float.valueOf(thresholdValue.getText()).floatValue(); + slider.setValue((int) (f * SCALE_FACTOR_1K)); + adjustmentValueChanged(null); + + /* + * force repaint of any Overview window or structure + */ + changeColour(true); + } catch (NumberFormatException ex) + { + } + } + @Override public void itemStateChanged(ItemEvent evt) { @@ -389,8 +413,9 @@ public class FeatureColourChooser extends Panel implements ActionListener, slider.setEnabled(true); thresholdValue.setEnabled(true); - FeatureColour acg = new FeatureColour(minColour.getBackground(), - maxColour.getBackground(), min, max); + Color minc = minColour.getBackground(); + Color maxc = maxColour.getBackground(); + FeatureColour acg = new FeatureColour(maxc, minc, maxc, minc, min, max); acg.setColourByLabel(colourFromLabel.getState()); maxColour.setEnabled(!colourFromLabel.getState()); @@ -426,11 +451,15 @@ public class FeatureColourChooser extends Panel implements ActionListener, { if (thresholdOption == AnnotationColourGradient.ABOVE_THRESHOLD) { - acg = new FeatureColour(acg, threshline.value, max); + acg = new FeatureColour(acg.getColour(), acg.getMinColour(), + acg.getMaxColour(), acg.getNoColour(), threshline.value, + max); } else { - acg = new FeatureColour(acg, min, threshline.value); + acg = new FeatureColour(acg.getColour(), acg.getMinColour(), + acg.getMaxColour(), acg.getNoColour(), min, + threshline.value); } }