1 package jalview.appletgui;
\r
3 import jalview.jbappletgui.*;
\r
4 import jalview.schemes.*;
\r
5 import jalview.datamodel.*;
\r
7 import java.awt.event.*;
\r
10 public class SliderPanel extends GSliderPanel
\r
13 boolean forConservation = true;
\r
16 static Frame conservationSlider;
\r
17 static Frame PIDSlider;
\r
19 public static int setConservationSlider(AlignmentPanel ap, ColourSchemeI cs, String source)
\r
21 SliderPanel sp = null;
\r
22 ConservationColourScheme ccs = (ConservationColourScheme)cs;
\r
23 int value = ccs.inc;
\r
25 if(conservationSlider == null)
\r
27 sp = new SliderPanel(ap, value, true, cs);
\r
28 conservationSlider = new Frame();
\r
29 conservationSlider.add(sp);
\r
33 sp = (SliderPanel)conservationSlider.getComponent(0);
\r
38 conservationSlider.setTitle("Conservation Colour Increment ("+source+")");
\r
39 if(ap.av.alignment.getGroups()!=null)
\r
40 sp.setAllGroupsCheckEnabled( true );
\r
42 sp.setAllGroupsCheckEnabled( false);
\r
44 return sp.getValue();
\r
47 public static void showConservationSlider()
\r
50 PIDSlider.setVisible(false);
\r
52 }catch(Exception ex){}
\r
55 if(!conservationSlider.isVisible())
\r
57 jalview.bin.JalviewLite.addFrame(conservationSlider, conservationSlider.getTitle(), 420, 100);
\r
58 conservationSlider.addWindowListener(new WindowAdapter()
\r
60 public void windowClosing(WindowEvent e)
\r
62 conservationSlider = null;
\r
70 public static int setPIDSliderSource(AlignmentPanel ap, ColourSchemeI cs, String source)
\r
72 SliderPanel pid = null;
\r
73 if(PIDSlider == null)
\r
75 pid = new SliderPanel(ap, 50, false, cs);
\r
76 PIDSlider = new Frame();
\r
81 pid = (SliderPanel)PIDSlider.getComponent(0);
\r
84 PIDSlider.setTitle("Percentage Identity Threshold ("+source+")");
\r
86 if (ap.av.alignment.getGroups() != null)
\r
87 pid.setAllGroupsCheckEnabled(true);
\r
89 pid.setAllGroupsCheckEnabled(false);
\r
91 return pid.getValue();
\r
95 public static void showPIDSlider()
\r
98 conservationSlider.setVisible(false);
\r
99 conservationSlider = null;
\r
100 }catch(Exception ex){}
\r
102 if(!PIDSlider.isVisible())
\r
104 jalview.bin.JalviewLite.addFrame(PIDSlider, PIDSlider.getTitle(), 420, 100);
\r
105 PIDSlider.addWindowListener(new WindowAdapter()
\r
107 public void windowClosing(WindowEvent e)
\r
117 public SliderPanel(AlignmentPanel ap, int value, boolean forConserve, ColourSchemeI cs)
\r
121 forConservation = forConserve;
\r
122 undoButton.setVisible(false);
\r
123 applyButton.setVisible(false);
\r
124 if(forConservation)
\r
126 label.setText("Modify conservation visibility");
\r
127 slider.setMinimum(0);
\r
128 slider.setMaximum(50+slider.getVisibleAmount());
\r
129 slider.setUnitIncrement(1);
\r
133 label.setText("Colour residues above % occurence");
\r
134 slider.setMinimum(0);
\r
135 slider.setMaximum(100+slider.getVisibleAmount());
\r
136 slider.setBlockIncrement(1);
\r
140 slider.addAdjustmentListener( new AdjustmentListener()
\r
142 public void adjustmentValueChanged(AdjustmentEvent evt)
\r
144 valueField.setText( slider.getValue()+"" );
\r
145 valueChanged( slider.getValue() );
\r
149 slider.setValue(value);
\r
150 valueField.setText(value+"");
\r
153 public void valueChanged(int i)
\r
158 ColourSchemeI toChange = null;
\r
159 Vector allGroups = null;
\r
160 int groupIndex = 0;
\r
162 if(allGroupsCheck.getState())
\r
164 allGroups = ap.av.alignment.getGroups();
\r
165 groupIndex = allGroups.size()-1;
\r
171 while( groupIndex > -1 )
\r
173 if(allGroups!=null)
\r
174 toChange = ((SequenceGroup)allGroups.elementAt(groupIndex)).cs;
\r
176 if (forConservation)
\r
178 if (toChange instanceof ConservationColourScheme)
\r
179 ( (ConservationColourScheme) toChange).inc = i;
\r
183 if (toChange.canThreshold())
\r
184 ( (ResidueColourScheme) toChange).setThreshold(i);
\r
190 ap.seqPanel.seqCanvas.repaint();
\r
194 public void setAllGroupsCheckEnabled(boolean b)
\r
196 allGroupsCheck.setEnabled(b);
\r
200 public void valueField_actionPerformed(ActionEvent e)
\r
203 int i = Integer.parseInt(valueField.getText());
\r
204 slider.setValue(i);
\r
206 catch(Exception ex)
\r
208 valueField.setText( slider.getValue()+"" );
\r
212 public void setValue(int value)
\r
214 slider.setValue(value);
\r
216 public int getValue()
\r
218 return Integer.parseInt(valueField.getText());
\r