X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fappletgui%2FFeatureColourChooser.java;h=5a073c6dbf105940d2e612901c23317d0ea80cd2;hb=8e640547def8e151db1fafafe93a2a0bb8078369;hp=f4603895dc6539265f2aa213c34d2779e9f7697b;hpb=93a90c5084d1e81afd65bf2e3063cde96d6b3b48;p=jalview.git diff --git a/src/jalview/appletgui/FeatureColourChooser.java b/src/jalview/appletgui/FeatureColourChooser.java index f460389..5a073c6 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; @@ -156,8 +158,8 @@ public class FeatureColourChooser extends Panel implements ActionListener, } catch (Exception ex) { } - threshold.select(cs.isAboveThreshold() ? 1 : (cs.isBelowThreshold() ? 2 - : 0)); + threshold.select( + cs.isAboveThreshold() ? 1 : (cs.isBelowThreshold() ? 2 : 0)); adjusting = false; changeColour(true); @@ -165,9 +167,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.graduated_color_for_params", new String[] + { type }), true, 480, 248); frame.setMainPanel(this); validate(); frame.setVisible(true); @@ -196,8 +198,8 @@ 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")), + maxLabel = new Label(MessageManager.getString("label.max")); 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 +234,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)); @@ -243,13 +253,13 @@ public class FeatureColourChooser extends Panel implements ActionListener, jPanel3.setBackground(Color.white); colourFromLabel.setFont(new java.awt.Font("Verdana", Font.PLAIN, 11)); - colourFromLabel.setLabel(MessageManager - .getString("label.colour_by_label")); + colourFromLabel + .setLabel(MessageManager.getString("label.colour_by_label")); colourFromLabel.setSize(new Dimension(139, 22)); // threshold.setBounds(new Rectangle(11, 3, 139, 22)); thresholdIsMin.setBackground(Color.white); - thresholdIsMin.setLabel(MessageManager - .getString("label.threshold_minmax")); + thresholdIsMin + .setLabel(MessageManager.getString("label.threshold_minmax")); thresholdIsMin.setSize(new Dimension(135, 23)); // thresholdIsMin.setBounds(new Rectangle(328, 3, 135, 23)); jPanel1.add(minLabel); @@ -272,14 +282,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); - } catch (NumberFormatException ex) - { - } + thresholdValue_actionPerformed(); } else if (evt.getSource() == minColour) { @@ -295,6 +298,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 = 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) + { + } + } + @Override public void itemStateChanged(ItemEvent evt) { @@ -333,9 +356,9 @@ public class FeatureColourChooser extends Panel implements ActionListener, { if (newCol == null) { - new UserDefinedColours(this, - minColour.getBackground(), owner, - MessageManager.getString("label.select_colour_minimum_value")); + new UserDefinedColours(this, minColour.getBackground(), owner, + MessageManager + .getString("label.select_colour_minimum_value")); } else { @@ -351,9 +374,9 @@ public class FeatureColourChooser extends Panel implements ActionListener, { if (newCol == null) { - new UserDefinedColours(this, - maxColour.getBackground(), owner, - MessageManager.getString("label.select_colour_maximum_value")); + new UserDefinedColours(this, maxColour.getBackground(), owner, + MessageManager + .getString("label.select_colour_maximum_value")); } else { @@ -372,14 +395,14 @@ public class FeatureColourChooser extends Panel implements ActionListener, return; } - int aboveThreshold = AnnotationColourGradient.NO_THRESHOLD; + int thresholdOption = AnnotationColourGradient.NO_THRESHOLD; if (threshold.getSelectedIndex() == 1) { - aboveThreshold = AnnotationColourGradient.ABOVE_THRESHOLD; + thresholdOption = AnnotationColourGradient.ABOVE_THRESHOLD; } else if (threshold.getSelectedIndex() == 2) { - aboveThreshold = AnnotationColourGradient.BELOW_THRESHOLD; + thresholdOption = AnnotationColourGradient.BELOW_THRESHOLD; } slider.setEnabled(true); @@ -390,14 +413,14 @@ public class FeatureColourChooser extends Panel implements ActionListener, acg.setColourByLabel(colourFromLabel.getState()); maxColour.setEnabled(!colourFromLabel.getState()); minColour.setEnabled(!colourFromLabel.getState()); - if (aboveThreshold == AnnotationColourGradient.NO_THRESHOLD) + if (thresholdOption == AnnotationColourGradient.NO_THRESHOLD) { slider.setEnabled(false); thresholdValue.setEnabled(false); thresholdValue.setText(""); } - if (aboveThreshold != AnnotationColourGradient.NO_THRESHOLD) + if (thresholdOption != AnnotationColourGradient.NO_THRESHOLD) { adjusting = true; acg.setThreshold(threshline.value); @@ -411,11 +434,15 @@ public class FeatureColourChooser extends Panel implements ActionListener, adjusting = false; } - acg.setAboveThreshold(true); + acg.setAboveThreshold( + thresholdOption == AnnotationColourGradient.ABOVE_THRESHOLD); + acg.setBelowThreshold( + thresholdOption == AnnotationColourGradient.BELOW_THRESHOLD); + if (thresholdIsMin.getState() - && aboveThreshold != AnnotationColourGradient.NO_THRESHOLD) + && thresholdOption != AnnotationColourGradient.NO_THRESHOLD) { - if (aboveThreshold == AnnotationColourGradient.ABOVE_THRESHOLD) + if (thresholdOption == AnnotationColourGradient.ABOVE_THRESHOLD) { acg = new FeatureColour(acg, threshline.value, max); }