New class
[jalview.git] / src / jalview / gui / SliderPanel.java
1 package jalview.gui;\r
2 \r
3 import jalview.jbgui.*;\r
4 import jalview.datamodel.*;\r
5 import jalview.schemes.*;\r
6 import java.awt.event.*;\r
7 import javax.swing.event.*;\r
8 \r
9 public class SliderPanel extends GSliderPanel\r
10 {\r
11   AlignmentPanel ap;\r
12   boolean forConservation = true;\r
13   ColourSchemeI cs;\r
14 \r
15   public SliderPanel(AlignmentPanel ap, int value, boolean forConserve, ColourSchemeI cs)\r
16   {\r
17     this.ap = ap;\r
18     this.cs = cs;\r
19     forConservation = forConserve;\r
20     if(forConservation)\r
21     {\r
22       label.setText("Enter the value by which to decrease conservation colour intensity");\r
23       slider.setMinimum(0);\r
24       slider.setMaximum(50);\r
25     }\r
26     else\r
27     {\r
28       label.setText("Enter the percent identity above which to colour residues");\r
29       slider.setMinimum(0);\r
30       slider.setMaximum(100);\r
31     }\r
32 \r
33 \r
34 \r
35     slider.addChangeListener( new ChangeListener()\r
36     {\r
37       public void stateChanged(ChangeEvent evt)\r
38       {\r
39         valueField.setText( slider.getValue()+"" );\r
40         valueChanged( slider.getValue() );\r
41       }\r
42     });\r
43 \r
44     slider.setValue(value);\r
45     valueField.setText(value+"");\r
46   }\r
47 \r
48   public void valueChanged(int i)\r
49   {\r
50 \r
51     if(forConservation)\r
52     {\r
53       if (cs instanceof ConservationColourScheme)\r
54         ( (ConservationColourScheme) cs).inc = i;\r
55     }\r
56     else\r
57      {\r
58        if( cs instanceof ResidueColourScheme)\r
59        {\r
60          ResidueColourScheme rcs = (ResidueColourScheme) cs;\r
61          rcs.setThreshold(i);\r
62        }\r
63        else if( cs instanceof ScoreColourScheme)\r
64        {\r
65          ScoreColourScheme scs = (ScoreColourScheme) cs;\r
66          scs.setThreshold(i);\r
67        }\r
68 \r
69      }\r
70 \r
71     ap.seqPanel.seqCanvas.paintFlag=true;\r
72     ap.seqPanel.repaint();\r
73 \r
74   }\r
75 \r
76   public void valueField_actionPerformed(ActionEvent e)\r
77   {\r
78     try{\r
79       int i = Integer.parseInt(valueField.getText());\r
80       slider.setValue(i);\r
81     }\r
82     catch(Exception ex)\r
83     {\r
84       valueField.setText( slider.getValue()+"" );\r
85     }\r
86   }\r
87 }\r