ThresholdIsMin available in applet
authoramwaterhouse <Andrew Waterhouse>
Fri, 27 Apr 2007 09:54:58 +0000 (09:54 +0000)
committeramwaterhouse <Andrew Waterhouse>
Fri, 27 Apr 2007 09:54:58 +0000 (09:54 +0000)
src/jalview/appletgui/AnnotationColourChooser.java

index 430bf65..2853b6b 100755 (executable)
@@ -25,6 +25,7 @@ import java.awt.event.*;
 \r
 import jalview.datamodel.*;\r
 import jalview.schemes.*;\r
+import java.awt.Rectangle;\r
 \r
 public class AnnotationColourChooser\r
     extends Panel implements ActionListener,\r
@@ -83,12 +84,21 @@ public class AnnotationColourChooser
     }\r
 \r
     adjusting = true;\r
+\r
+    Vector list = new Vector();\r
+    int index = 1;\r
     for (int i = 0; i < av.alignment.getAlignmentAnnotation().length; i++)\r
     {\r
-      if (av.alignment.getAlignmentAnnotation()[i].graph > 0)\r
-      {\r
-        annotations.addItem(av.alignment.getAlignmentAnnotation()[i].label);\r
-      }\r
+      String label = av.alignment.getAlignmentAnnotation()[i].label;\r
+      if (!list.contains(label))\r
+        list.addElement(label);\r
+      else\r
+        list.addElement(label+"_"+(index++));\r
+    }\r
+\r
+    for (int i = 0; i < list.size(); i++)\r
+    {\r
+        annotations.addItem(list.elementAt(i).toString());\r
     }\r
 \r
     threshold.addItem("No Threshold");\r
@@ -128,6 +138,7 @@ public class AnnotationColourChooser
     maxColour.setLabel("Max Colour");\r
     maxColour.addActionListener(this);\r
 \r
+    thresholdIsMin.addItemListener(this);\r
     ok.setLabel("OK");\r
     ok.addActionListener(this);\r
 \r
@@ -146,16 +157,19 @@ public class AnnotationColourChooser
 \r
     slider.setBackground(Color.white);\r
     slider.setEnabled(false);\r
-    slider.setBounds(new Rectangle(172, 7, 120, 16));\r
+    slider.setBounds(new Rectangle(125, 6, 82, 16));\r
     thresholdValue.setEnabled(false);\r
-    thresholdValue.setBounds(new Rectangle(295, 4, 83, 22));\r
-    thresholdValue.setColumns(10);\r
+    thresholdValue.setBounds(new Rectangle(211, 4, 56, 22));\r
+    thresholdValue.setColumns(5);\r
     jPanel3.setBackground(Color.white);\r
     currentColours.setFont(new java.awt.Font("Verdana", Font.PLAIN, 11));\r
     currentColours.setLabel("Use Original Colours");\r
     currentColours.addItemListener(this);\r
 \r
-    threshold.setBounds(new Rectangle(19, 4, 141, 22));\r
+    threshold.setBounds(new Rectangle(11, 3, 113, 22));\r
+    thresholdIsMin.setBackground(Color.white);\r
+    thresholdIsMin.setLabel("Threshold is min/max");\r
+    thresholdIsMin.setBounds(new Rectangle(270, 3, 135, 23));\r
     jPanel1.add(ok);\r
     jPanel1.add(cancel);\r
     jPanel2.add(annotations);\r
@@ -165,6 +179,7 @@ public class AnnotationColourChooser
     jPanel3.add(threshold);\r
     jPanel3.add(slider);\r
     jPanel3.add(thresholdValue);\r
+    jPanel3.add(thresholdIsMin);\r
     this.add(jPanel2, java.awt.BorderLayout.NORTH);\r
     this.add(jPanel3, java.awt.BorderLayout.CENTER);\r
     this.add(jPanel1, java.awt.BorderLayout.SOUTH);\r
@@ -184,6 +199,7 @@ public class AnnotationColourChooser
   TextField thresholdValue = new TextField(20);\r
   Checkbox currentColours = new Checkbox();\r
   BorderLayout borderLayout1 = new BorderLayout();\r
+  Checkbox thresholdIsMin = new Checkbox();\r
 \r
   public void actionPerformed(ActionEvent evt)\r
   {\r
@@ -297,27 +313,9 @@ public class AnnotationColourChooser
       return;\r
     }\r
 \r
-    // We removed the non-graph annotations when filling the combobox\r
-    // so allow for them again here\r
-    int nograph = 0, graph = -1;\r
-    for (int i = 0; i < av.alignment.getAlignmentAnnotation().length; i++)\r
-    {\r
-      if (av.alignment.getAlignmentAnnotation()[i].graph == 0)\r
-      {\r
-        nograph++;\r
-      }\r
-      else\r
-      {\r
-        graph++;\r
-      }\r
-\r
-      if (graph == annotations.getSelectedIndex())\r
-      {\r
-        break;\r
-      }\r
-    }\r
 \r
-    currentAnnotation = av.alignment.getAlignmentAnnotation()[graph + nograph];\r
+    currentAnnotation = av.alignment.getAlignmentAnnotation()\r
+        [annotations.getSelectedIndex()];\r
 \r
     int aboveThreshold = -1;\r
     if (threshold.getSelectedItem().equals("Above Threshold"))\r
@@ -378,6 +376,13 @@ public class AnnotationColourChooser
               aboveThreshold);\r
     }\r
 \r
+    if (currentAnnotation.graphMin == 0f && currentAnnotation.graphMax == 0f)\r
+    {\r
+      acg.predefinedColours = true;\r
+    }\r
+\r
+    acg.thresholdIsMinMax = thresholdIsMin.getState();\r
+\r
     av.setGlobalColourScheme(acg);\r
 \r
     if (av.alignment.getGroups() != null)\r