Can be used for annotation colouring
[jalview.git] / src / jalview / gui / SliderPanel.java
index c18cc05..6f8a0b2 100755 (executable)
@@ -44,6 +44,7 @@ public class SliderPanel extends GSliderPanel
     static JInternalFrame PIDSlider;\r
     AlignmentPanel ap;\r
     boolean forConservation = true;\r
+    boolean forAnnotation = false;\r
     ColourSchemeI cs;\r
 \r
     /**\r
@@ -89,6 +90,44 @@ public class SliderPanel extends GSliderPanel
         valueField.setText(value + "");\r
     }\r
 \r
+    public SliderPanel(final AlignmentAnnotation annotation, final AlignmentPanel ap)\r
+    {\r
+      forAnnotation = true;\r
+      undoButton.setVisible(false);\r
+      applyButton.setVisible(false);\r
+      allGroupsCheck.setVisible(false);\r
+      label.setText("Adjust value - "+annotation.getGraphLine(0).label);\r
+\r
+      float range = annotation.graphMax * 1000 - annotation.graphMin * 1000;\r
+\r
+      slider.setMinimum( (int) (annotation.graphMin * 1000));\r
+      slider.setMaximum( (int) (annotation.graphMax * 1000));\r
+      slider.setValue( (int) (annotation.getGraphLine(0).value * 1000));\r
+      valueField.setText( annotation.getGraphLine(0).value + "");\r
+      slider.setMajorTickSpacing( (int) (range / 10f));\r
+      slider.setMinorTickSpacing( (int) (range / 100f));\r
+      slider.setPaintTicks(true);\r
+\r
+      JInternalFrame slideFrame = new JInternalFrame();\r
+      slideFrame.setLayer(JLayeredPane.PALETTE_LAYER);\r
+      Desktop.addInternalFrame(slideFrame,\r
+                               "Adjust " + annotation.label +" value",\r
+                               250, 90);\r
+\r
+      slideFrame.setContentPane(this);\r
+      slider.addChangeListener(new ChangeListener()\r
+      {\r
+        public void stateChanged(ChangeEvent evt)\r
+        {\r
+          valueField.setText( ((float)slider.getValue()/1000f) + "");\r
+          annotation.getGraphLine(0).value = (float)slider.getValue()/1000f;\r
+          ap.repaint();\r
+        }\r
+      });\r
+\r
+    }\r
+\r
+\r
     /**\r
      * DOCUMENT ME!\r
      *\r
@@ -102,11 +141,10 @@ public class SliderPanel extends GSliderPanel
         ColourSchemeI cs, String source)\r
     {\r
         SliderPanel sp = null;\r
-        ConservationColourScheme ccs = (ConservationColourScheme) cs;\r
 \r
         if (conservationSlider == null)\r
         {\r
-            sp = new SliderPanel(ap, ccs.inc, true, cs);\r
+            sp = new SliderPanel(ap, cs.getConservationInc(), true, cs);\r
             conservationSlider = new JInternalFrame();\r
             conservationSlider.setContentPane(sp);\r
             conservationSlider.setLayer(JLayeredPane.PALETTE_LAYER);\r
@@ -176,16 +214,7 @@ public class SliderPanel extends GSliderPanel
     {\r
         SliderPanel pid = null;\r
 \r
-        int threshold = 50;\r
-\r
-        if (cs instanceof ResidueColourScheme)\r
-        {\r
-            threshold = (((ResidueColourScheme) cs).getThreshold());\r
-        }\r
-        else if (cs instanceof ScoreColourScheme)\r
-        {\r
-            threshold = (((ScoreColourScheme) cs).getThreshold());\r
-        }\r
+        int threshold = cs.getThreshold();\r
 \r
         if (PIDSlider == null)\r
         {\r
@@ -253,10 +282,12 @@ public class SliderPanel extends GSliderPanel
     public void valueChanged(int i)\r
     {\r
         if (cs == null)\r
-        {\r
+        {System.out.println("cs is null");\r
             return;\r
         }\r
 \r
+\r
+\r
         ColourSchemeI toChange = null;\r
         Vector allGroups = null;\r
         int groupIndex = 0;\r
@@ -271,6 +302,7 @@ public class SliderPanel extends GSliderPanel
             toChange = cs;\r
         }\r
 \r
+\r
         while (groupIndex > -1)\r
         {\r
             if (allGroups != null)\r
@@ -287,14 +319,14 @@ public class SliderPanel extends GSliderPanel
 \r
             if (forConservation)\r
             {\r
-                if (toChange instanceof ConservationColourScheme)\r
+                if (toChange.conservationApplied())\r
                 {\r
-                    ((ConservationColourScheme) toChange).inc = i;\r
+                    toChange.setConservationInc(i);\r
                 }\r
             }\r
             else\r
             {\r
-                ((ResidueColourScheme) toChange).setThreshold(i);\r
+                toChange.setThreshold(i, ap.av.getIgnoreGapsConsensus());\r
             }\r
 \r
             groupIndex--;\r
@@ -322,8 +354,16 @@ public class SliderPanel extends GSliderPanel
     {\r
         try\r
         {\r
+          if (forAnnotation)\r
+          {\r
+            float f = Float.parseFloat(valueField.getText());\r
+            slider.setValue( (int)( f * 1000 ));\r
+          }\r
+          else\r
+          {\r
             int i = Integer.parseInt(valueField.getText());\r
             slider.setValue(i);\r
+          }\r
         }\r
         catch (Exception ex)\r
         {\r