Apply to all groups method added
[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     ColourSchemeI toChange = null;\r
54     Vector allGroups = null;\r
55     int groupIndex = 0;\r
56 \r
57     if(allGroupsCheck.isSelected())\r
58     {\r
59       allGroups = ap.av.alignment.getGroups();\r
60       groupIndex = allGroups.size()-1;\r
61     }\r
62     else\r
63       toChange = cs;\r
64 \r
65 \r
66     while( groupIndex > -1 )\r
67     {\r
68       if(allGroups!=null)\r
69         toChange = ((SequenceGroup)allGroups.get(groupIndex)).cs;\r
70 \r
71       if (forConservation)\r
72       {\r
73         if (toChange instanceof ConservationColourScheme)\r
74           ( (ConservationColourScheme) toChange).inc = i;\r
75       }\r
76       else\r
77       {\r
78         if (toChange.canThreshold())\r
79           ( (ResidueColourScheme) toChange).setThreshold(i);\r
80       }\r
81 \r
82       groupIndex--;\r
83     }\r
84 \r
85 \r
86     ap.seqPanel.seqCanvas.paintFlag=true;\r
87     ap.seqPanel.repaint();\r
88 \r
89   }\r
90 \r
91   public void setAllGroupsCheckEnabled(boolean b)\r
92   {\r
93     allGroupsCheck.setEnabled(b);\r
94   }\r
95 \r
96 \r
97   public void valueField_actionPerformed(ActionEvent e)\r
98   {\r
99     try{\r
100       int i = Integer.parseInt(valueField.getText());\r
101       slider.setValue(i);\r
102     }\r
103     catch(Exception ex)\r
104     {\r
105       valueField.setText( slider.getValue()+"" );\r
106     }\r
107   }\r
108 \r
109   public int getValue()\r
110   {\r
111     return Integer.parseInt(valueField.getText());\r
112   }\r
113 \r
114 \r
115 }\r