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 javax.swing.*;
\r
11 public class SliderPanel extends GSliderPanel
\r
14 boolean forConservation = true;
\r
17 static JInternalFrame conservationSlider;
\r
18 static JInternalFrame PIDSlider;
\r
20 public static int setConservationSlider(AlignmentPanel ap, ColourSchemeI cs, String source)
\r
22 SliderPanel sp = null;
\r
23 ConservationColourScheme ccs = (ConservationColourScheme)cs;
\r
24 int value = ccs.inc;
\r
26 if(conservationSlider == null)
\r
28 sp = new SliderPanel(ap, value, true, cs);
\r
29 conservationSlider = new JInternalFrame();
\r
30 conservationSlider.setContentPane(sp);
\r
31 conservationSlider.setLayer(JLayeredPane.PALETTE_LAYER);
\r
35 sp = (SliderPanel)conservationSlider.getContentPane();
\r
40 conservationSlider.setTitle("Conservation Colour Increment ("+source+")");
\r
41 if(ap.av.alignment.getGroups()!=null)
\r
42 sp.setAllGroupsCheckEnabled( true );
\r
44 sp.setAllGroupsCheckEnabled( false);
\r
46 return sp.getValue();
\r
49 public static void showConservationSlider()
\r
52 PIDSlider.setClosed(true);
\r
54 }catch(Exception ex){}
\r
57 if(!conservationSlider.isVisible())
\r
59 Desktop.addInternalFrame(conservationSlider, conservationSlider.getTitle(), 420, 90, false);
\r
60 conservationSlider.addInternalFrameListener(new javax.swing.event.
\r
61 InternalFrameAdapter()
\r
63 public void internalFrameClosed(javax.swing.event.InternalFrameEvent e)
\r
65 conservationSlider = null;
\r
68 conservationSlider.setLayer(JLayeredPane.PALETTE_LAYER);
\r
73 public static int setPIDSliderSource(AlignmentPanel ap, ColourSchemeI cs, String source)
\r
75 SliderPanel pid = null;
\r
78 if (cs instanceof ResidueColourScheme)
\r
79 threshold = ( ( (ResidueColourScheme) cs).getThreshold());
\r
80 else if (cs instanceof ScoreColourScheme)
\r
81 threshold = ( ( (ScoreColourScheme) cs).getThreshold());
\r
84 if(PIDSlider == null)
\r
86 pid = new SliderPanel(ap, threshold, false, cs);
\r
87 PIDSlider = new JInternalFrame();
\r
88 PIDSlider.setContentPane(pid);
\r
89 PIDSlider.setLayer(JLayeredPane.PALETTE_LAYER);
\r
93 pid = (SliderPanel)PIDSlider.getContentPane();
\r
96 PIDSlider.setTitle("Percentage Identity Threshold ("+source+")");
\r
98 if (ap.av.alignment.getGroups() != null)
\r
99 pid.setAllGroupsCheckEnabled(true);
\r
101 pid.setAllGroupsCheckEnabled(false);
\r
103 return pid.getValue();
\r
107 public static void showPIDSlider()
\r
110 conservationSlider.setClosed(true);
\r
111 conservationSlider = null;
\r
112 }catch(Exception ex){}
\r
114 if(!PIDSlider.isVisible())
\r
116 Desktop.addInternalFrame(PIDSlider, PIDSlider.getTitle(), 420, 90, false);
\r
117 PIDSlider.setLayer(JLayeredPane.PALETTE_LAYER);
\r
118 PIDSlider.addInternalFrameListener(new javax.swing.event.
\r
119 InternalFrameAdapter()
\r
121 public void internalFrameClosed(javax.swing.event.InternalFrameEvent e)
\r
126 PIDSlider.setLayer(JLayeredPane.PALETTE_LAYER);
\r
132 public SliderPanel(AlignmentPanel ap, int value, boolean forConserve, ColourSchemeI cs)
\r
136 forConservation = forConserve;
\r
137 undoButton.setVisible(false);
\r
138 applyButton.setVisible(false);
\r
139 if(forConservation)
\r
141 label.setText("Enter value to increase conservation visibility");
\r
142 slider.setMinimum(0);
\r
143 slider.setMaximum(50);
\r
147 label.setText("Enter % identity above which to colour residues");
\r
148 slider.setMinimum(0);
\r
149 slider.setMaximum(100);
\r
154 slider.addChangeListener( new ChangeListener()
\r
156 public void stateChanged(ChangeEvent evt)
\r
158 valueField.setText( slider.getValue()+"" );
\r
159 valueChanged( slider.getValue() );
\r
163 slider.setValue(value);
\r
164 valueField.setText(value+"");
\r
167 public void valueChanged(int i)
\r
172 ColourSchemeI toChange = null;
\r
173 Vector allGroups = null;
\r
174 int groupIndex = 0;
\r
176 if(allGroupsCheck.isSelected())
\r
178 allGroups = ap.av.alignment.getGroups();
\r
179 groupIndex = allGroups.size()-1;
\r
185 while( groupIndex > -1 )
\r
187 if(allGroups!=null)
\r
188 toChange = ((SequenceGroup)allGroups.get(groupIndex)).cs;
\r
190 if (forConservation)
\r
192 if (toChange instanceof ConservationColourScheme)
\r
193 ( (ConservationColourScheme) toChange).inc = i;
\r
197 if (toChange.canThreshold())
\r
198 ( (ResidueColourScheme) toChange).setThreshold(i);
\r
204 ap.seqPanel.repaint();
\r
208 public void setAllGroupsCheckEnabled(boolean b)
\r
210 allGroupsCheck.setEnabled(b);
\r
214 public void valueField_actionPerformed(ActionEvent e)
\r
217 int i = Integer.parseInt(valueField.getText());
\r
218 slider.setValue(i);
\r
220 catch(Exception ex)
\r
222 valueField.setText( slider.getValue()+"" );
\r
226 public void setValue(int value)
\r
228 slider.setValue(value);
\r
230 public int getValue()
\r
232 return Integer.parseInt(valueField.getText());
\r