graduated feature schemes (with visual indication of thresholding)
[jalview.git] / src / jalview / gui / FeatureColourChooser.java
index 24662c7..1898113 100644 (file)
@@ -23,6 +23,7 @@ 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.*;
@@ -72,7 +73,9 @@ public class FeatureColourChooser extends JPanel
     this.type = type;
     ap = fr.ap;
     frame = new JDialog(Desktop.instance,true);
-    frame.setSize(480,185);
+    frame.setTitle("Graduated Feature Colour for "+type);
+    Rectangle deskr = Desktop.instance.getBounds();
+    frame.setBounds(new Rectangle((int) (deskr.getCenterX()-240),(int) (deskr.getCenterY()-92),480,185));
     frame.setContentPane(this);
     //frame.setLayer(JLayeredPane.PALETTE_LAYER);
     //Desktop.addInternalFrame(frame, "Graduated Feature Colour for "+type, 480, 145);
@@ -143,7 +146,7 @@ public class FeatureColourChooser extends JPanel
                         (max - min) / 2f,
                         "Threshold", Color.black);
       
-    }
+    } 
 
     adjusting = false;
 
@@ -178,7 +181,7 @@ public class FeatureColourChooser extends JPanel
   {
     
     minColour.setFont(new java.awt.Font("Verdana", Font.PLAIN, 11));
-    minColour.setBorder(BorderFactory.createEtchedBorder());
+    minColour.setBorder(BorderFactory.createLineBorder(Color.black));
     minColour.setPreferredSize(new Dimension(40, 20));
     minColour.setToolTipText("Minimum Colour");
     minColour.addMouseListener(new MouseAdapter()
@@ -192,7 +195,7 @@ public class FeatureColourChooser extends JPanel
       }
     });
     maxColour.setFont(new java.awt.Font("Verdana", Font.PLAIN, 11));
-    maxColour.setBorder(BorderFactory.createEtchedBorder());
+    maxColour.setBorder(BorderFactory.createLineBorder(Color.black));
     maxColour.setPreferredSize(new Dimension(40, 20));
     maxColour.setToolTipText("Maximum Colour");
     maxColour.addMouseListener(new MouseAdapter()
@@ -205,6 +208,11 @@ public class FeatureColourChooser extends JPanel
         }
       }
     });
+    maxColour.setBorder(new LineBorder(Color.black));
+    minText.setText("Min:");
+    minText.setFont(new java.awt.Font("Verdana", Font.PLAIN, 11));
+    maxText.setText("Max:");
+    maxText.setFont(new java.awt.Font("Verdana", Font.PLAIN, 11));
     ok.setOpaque(false);
     ok.setText("OK");
     ok.addActionListener(new ActionListener()
@@ -276,11 +284,14 @@ public class FeatureColourChooser extends JPanel
         colourByLabel_actionPerformed(actionEvent);
       }
     });
+    colourPanel.setBackground(Color.white);
     jPanel1.add(ok);
     jPanel1.add(cancel);
     jPanel2.add(colourByLabel,java.awt.BorderLayout.WEST);
     jPanel2.add(colourPanel,java.awt.BorderLayout.EAST);
+    colourPanel.add(minText);
     colourPanel.add(minColour);
+    colourPanel.add(maxText);
     colourPanel.add(maxColour);
     this.add(jPanel3, java.awt.BorderLayout.CENTER);
     jPanel3.add(threshold);
@@ -292,6 +303,8 @@ public class FeatureColourChooser extends JPanel
   }
 
 
+  JLabel minText = new JLabel();
+  JLabel maxText = new JLabel();
   JPanel minColour = new JPanel();
 
   JPanel maxColour = new JPanel();
@@ -391,6 +404,7 @@ public class FeatureColourChooser extends JPanel
       slider.setEnabled(false);
       thresholdValue.setEnabled(false);
       thresholdValue.setText("");
+      thresholdIsMin.setEnabled(false);
     }
     else if (aboveThreshold != AnnotationColourGradient.NO_THRESHOLD
             && threshline == null)
@@ -416,6 +430,7 @@ public class FeatureColourChooser extends JPanel
       slider.setMajorTickSpacing((int) (range / 10f));
       slider.setEnabled(true);
       thresholdValue.setEnabled(true);
+      thresholdIsMin.setEnabled(!colourByLabel.isSelected());
       adjusting = false;
     }