X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fgui%2FFeatureColourChooser.java;h=064d58b9f0f1c39a24076d80e9947840ab20ec8b;hb=a4ace9297e743fb504dffd43ebb11074db263e10;hp=d1d1b6d6c0516edab5718cfb8f1835af50cfed66;hpb=72b3f05a1157da32ada5aea139139996dddea219;p=jalview.git diff --git a/src/jalview/gui/FeatureColourChooser.java b/src/jalview/gui/FeatureColourChooser.java index d1d1b6d..064d58b 100644 --- a/src/jalview/gui/FeatureColourChooser.java +++ b/src/jalview/gui/FeatureColourChooser.java @@ -1,6 +1,6 @@ /* - * Jalview - A Sequence Alignment Editor and Viewer (Version 2.8.2) - * Copyright (C) 2014 The Jalview Authors + * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$) + * Copyright (C) $$Year-Rel$$ The Jalview Authors * * This file is part of Jalview. * @@ -20,19 +20,32 @@ */ package jalview.gui; -import java.util.*; - -import java.awt.*; -import java.awt.event.*; -import javax.swing.*; -import javax.swing.border.LineBorder; -import javax.swing.event.*; - -import jalview.datamodel.*; -import jalview.schemes.*; +import jalview.datamodel.GraphLine; +import jalview.schemes.AnnotationColourGradient; +import jalview.schemes.GraduatedColor; import jalview.util.MessageManager; +import java.awt.BorderLayout; +import java.awt.Color; import java.awt.Dimension; +import java.awt.FlowLayout; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; +import java.awt.event.MouseAdapter; +import java.awt.event.MouseEvent; +import java.util.Hashtable; + +import javax.swing.BorderFactory; +import javax.swing.JCheckBox; +import javax.swing.JColorChooser; +import javax.swing.JComboBox; +import javax.swing.JLabel; +import javax.swing.JPanel; +import javax.swing.JSlider; +import javax.swing.JTextField; +import javax.swing.border.LineBorder; +import javax.swing.event.ChangeEvent; +import javax.swing.event.ChangeListener; public class FeatureColourChooser extends JalviewDialog { @@ -63,9 +76,11 @@ public class FeatureColourChooser extends JalviewDialog boolean adjusting = false; - private float min; + final private float min; - private float max; + final private float max; + + final private float scaleFactor; String type = null; @@ -80,25 +95,28 @@ public class FeatureColourChooser extends JalviewDialog this.fr = frender; this.type = type; ap = fr.ap; - initDialogFrame(this, true, block, "Graduated Feature Colour for " - + type, 480, 185); + String title = MessageManager.formatMessage( + "label.graduated_color_for_params", new String[] { type }); + initDialogFrame(this, true, block, title, 480, 185); // frame.setLayer(JLayeredPane.PALETTE_LAYER); // Desktop.addInternalFrame(frame, "Graduated Feature Colour for "+type, // 480, 145); slider.addChangeListener(new ChangeListener() { + @Override public void stateChanged(ChangeEvent evt) { if (!adjusting) { - thresholdValue.setText(((float) slider.getValue() / 1000f) + ""); + thresholdValue.setText((slider.getValue() / scaleFactor) + ""); valueChanged(); } } }); slider.addMouseListener(new MouseAdapter() { + @Override public void mouseReleased(MouseEvent evt) { if (ap != null) @@ -112,6 +130,14 @@ public class FeatureColourChooser extends JalviewDialog float mm[] = ((float[][]) fr.getMinMax().get(type))[0]; min = mm[0]; max = mm[1]; + + /* + * ensure scale factor allows a scaled range with + * 10 integer divisions ('ticks'); if we have got here, + * we should expect that max != min + */ + scaleFactor = (max == min) ? 1f : 100f / (max - min); + oldcs = fr.getFeatureColours().get(type); if (oldcs instanceof GraduatedColor) { @@ -169,17 +195,6 @@ public class FeatureColourChooser extends JalviewDialog waitForInput(); } - public FeatureColourChooser() - { - try - { - jbInit(); - } catch (Exception ex) - { - ex.printStackTrace(); - } - } - private void jbInit() throws Exception { @@ -189,6 +204,7 @@ public class FeatureColourChooser extends JalviewDialog minColour.setToolTipText(MessageManager.getString("label.min_colour")); minColour.addMouseListener(new MouseAdapter() { + @Override public void mousePressed(MouseEvent e) { if (minColour.isEnabled()) @@ -203,6 +219,7 @@ public class FeatureColourChooser extends JalviewDialog maxColour.setToolTipText(MessageManager.getString("label.max_colour")); maxColour.addMouseListener(new MouseAdapter() { + @Override public void mousePressed(MouseEvent e) { if (maxColour.isEnabled()) @@ -222,6 +239,7 @@ public class FeatureColourChooser extends JalviewDialog jPanel2.setBackground(Color.white); threshold.addActionListener(new ActionListener() { + @Override public void actionPerformed(ActionEvent e) { threshold_actionPerformed(e); @@ -238,6 +256,7 @@ public class FeatureColourChooser extends JalviewDialog jPanel3.setLayout(flowLayout2); thresholdValue.addActionListener(new ActionListener() { + @Override public void actionPerformed(ActionEvent e) { thresholdValue_actionPerformed(e); @@ -261,6 +280,7 @@ public class FeatureColourChooser extends JalviewDialog .getString("label.toggle_absolute_relative_display_threshold")); thresholdIsMin.addActionListener(new ActionListener() { + @Override public void actionPerformed(ActionEvent actionEvent) { thresholdIsMin_actionPerformed(actionEvent); @@ -274,6 +294,7 @@ public class FeatureColourChooser extends JalviewDialog .getString("label.display_features_same_type_different_label_using_different_colour")); colourByLabel.addActionListener(new ActionListener() { + @Override public void actionPerformed(ActionEvent actionEvent) { colourByLabel_actionPerformed(actionEvent); @@ -419,11 +440,11 @@ public class FeatureColourChooser extends JalviewDialog adjusting = true; acg.setThresh(threshline.value); - float range = max * 1000f - min * 1000f; + float range = (max - min) * scaleFactor; - slider.setMinimum((int) (min * 1000)); - slider.setMaximum((int) (max * 1000)); - slider.setValue((int) (threshline.value * 1000)); + slider.setMinimum((int) (min * scaleFactor)); + slider.setMaximum((int) (max * scaleFactor)); + slider.setValue((int) (threshline.value * scaleFactor)); thresholdValue.setText(threshline.value + ""); slider.setMajorTickSpacing((int) (range / 10f)); slider.setEnabled(true); @@ -475,6 +496,7 @@ public class FeatureColourChooser extends JalviewDialog ap.paintAlignment(false); } + @Override protected void raiseClosed() { if (this.colourEditor != null) @@ -483,11 +505,13 @@ public class FeatureColourChooser extends JalviewDialog } } + @Override public void okPressed() { changeColour(); } + @Override public void cancelPressed() { reset(); @@ -520,7 +544,7 @@ public class FeatureColourChooser extends JalviewDialog try { float f = Float.parseFloat(thresholdValue.getText()); - slider.setValue((int) (f * 1000)); + slider.setValue((int) (f * scaleFactor)); threshline.value = f; } catch (NumberFormatException ex) { @@ -529,7 +553,7 @@ public class FeatureColourChooser extends JalviewDialog public void valueChanged() { - threshline.value = (float) slider.getValue() / 1000f; + threshline.value = slider.getValue() / scaleFactor; cs.setThresh(threshline.value); changeColour(); ap.paintAlignment(false);