253246b64606b8a6a108474106f527b884a28c23
[jalview.git] / src / jalview / gui / SliderPanel.java
1 package jalview.gui;\r
2 \r
3 import jalview.jbgui.*;\r
4 import jalview.schemes.*;\r
5 import jalview.datamodel.*;\r
6 import java.awt.event.*;\r
7 import javax.swing.event.*;\r
8 import java.util.*;\r
9 \r
10 public class SliderPanel extends GSliderPanel\r
11 {\r
12   AlignmentPanel ap;\r
13   boolean forConservation = true;\r
14   ColourSchemeI cs;\r
15 \r
16   public SliderPanel(AlignmentPanel ap, int value, boolean forConserve, ColourSchemeI cs)\r
17   {\r
18     this.ap = ap;\r
19     this.cs = cs;\r
20     forConservation = forConserve;\r
21     undoButton.setVisible(false);\r
22     applyButton.setVisible(false);\r
23     if(forConservation)\r
24     {\r
25       label.setText("Enter the value by which to decrease conservation colour intensity");\r
26       slider.setMinimum(0);\r
27       slider.setMaximum(50);\r
28     }\r
29     else\r
30     {\r
31       label.setText("Enter the percent identity above which to colour residues");\r
32       slider.setMinimum(0);\r
33       slider.setMaximum(100);\r
34     }\r
35 \r
36 \r
37 \r
38     slider.addChangeListener( new ChangeListener()\r
39     {\r
40       public void stateChanged(ChangeEvent evt)\r
41       {\r
42         valueField.setText( slider.getValue()+"" );\r
43         valueChanged( slider.getValue() );\r
44       }\r
45     });\r
46 \r
47     slider.setValue(value);\r
48     valueField.setText(value+"");\r
49   }\r
50 \r
51   public void valueChanged(int i)\r
52   {\r
53     if(cs == null)\r
54       return;\r
55 \r
56     ColourSchemeI toChange = null;\r
57     Vector allGroups = null;\r
58     int groupIndex = 0;\r
59 \r
60     if(allGroupsCheck.isSelected())\r
61     {\r
62       allGroups = ap.av.alignment.getGroups();\r
63       groupIndex = allGroups.size()-1;\r
64     }\r
65     else\r
66       toChange = cs;\r
67 \r
68 \r
69     while( groupIndex > -1 )\r
70     {\r
71       if(allGroups!=null)\r
72         toChange = ((SequenceGroup)allGroups.get(groupIndex)).cs;\r
73 \r
74       if (forConservation)\r
75       {\r
76         if (toChange instanceof ConservationColourScheme)\r
77           ( (ConservationColourScheme) toChange).inc = i;\r
78       }\r
79       else\r
80       {\r
81         if (toChange.canThreshold())\r
82           ( (ResidueColourScheme) toChange).setThreshold(i);\r
83       }\r
84 \r
85       groupIndex--;\r
86     }\r
87 \r
88     ap.seqPanel.repaint();\r
89 \r
90   }\r
91 \r
92   public void setAllGroupsCheckEnabled(boolean b)\r
93   {\r
94     allGroupsCheck.setEnabled(b);\r
95   }\r
96 \r
97 \r
98   public void valueField_actionPerformed(ActionEvent e)\r
99   {\r
100     try{\r
101       int i = Integer.parseInt(valueField.getText());\r
102       slider.setValue(i);\r
103     }\r
104     catch(Exception ex)\r
105     {\r
106       valueField.setText( slider.getValue()+"" );\r
107     }\r
108   }\r
109 \r
110   public void setValue(int value)\r
111   {\r
112     slider.setValue(value);\r
113   }\r
114   public int getValue()\r
115   {\r
116     return Integer.parseInt(valueField.getText());\r
117   }\r
118 \r
119 \r
120 }\r