null point bug fixed
[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 \r
89     ap.seqPanel.seqCanvas.paintFlag=true;\r
90     ap.seqPanel.repaint();\r
91 \r
92   }\r
93 \r
94   public void setAllGroupsCheckEnabled(boolean b)\r
95   {\r
96     allGroupsCheck.setEnabled(b);\r
97   }\r
98 \r
99 \r
100   public void valueField_actionPerformed(ActionEvent e)\r
101   {\r
102     try{\r
103       int i = Integer.parseInt(valueField.getText());\r
104       slider.setValue(i);\r
105     }\r
106     catch(Exception ex)\r
107     {\r
108       valueField.setText( slider.getValue()+"" );\r
109     }\r
110   }\r
111 \r
112   public int getValue()\r
113   {\r
114     return Integer.parseInt(valueField.getText());\r
115   }\r
116 \r
117 \r
118 }\r