2 * Jalview - A Sequence Alignment Editor and Viewer
\r
3 * Copyright (C) 2005 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle
\r
5 * This program is free software; you can redistribute it and/or
\r
6 * modify it under the terms of the GNU General Public License
\r
7 * as published by the Free Software Foundation; either version 2
\r
8 * of the License, or (at your option) any later version.
\r
10 * This program is distributed in the hope that it will be useful,
\r
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
\r
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
\r
13 * GNU General Public License for more details.
\r
15 * You should have received a copy of the GNU General Public License
\r
16 * along with this program; if not, write to the Free Software
\r
17 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
\r
20 package jalview.appletgui;
\r
25 import java.awt.event.*;
\r
27 import jalview.datamodel.*;
\r
28 import jalview.jbappletgui.*;
\r
29 import jalview.schemes.*;
\r
31 public class SliderPanel
\r
32 extends GSliderPanel
\r
35 boolean forConservation = true;
\r
38 static Frame conservationSlider;
\r
39 static Frame PIDSlider;
\r
41 public static int setConservationSlider(AlignmentPanel ap, ColourSchemeI cs,
\r
44 SliderPanel sp = null;
\r
46 if (conservationSlider == null)
\r
48 sp = new SliderPanel(ap, cs.getConservationInc(), true, cs);
\r
49 conservationSlider = new Frame();
\r
50 conservationSlider.add(sp);
\r
54 sp = (SliderPanel) conservationSlider.getComponent(0);
\r
58 conservationSlider.setTitle("Conservation Colour Increment (" + source +
\r
60 if (ap.av.alignment.getGroups() != null)
\r
62 sp.setAllGroupsCheckEnabled(true);
\r
66 sp.setAllGroupsCheckEnabled(false);
\r
69 return sp.getValue();
\r
72 public static void showConservationSlider()
\r
76 PIDSlider.setVisible(false);
\r
79 catch (Exception ex)
\r
82 if (!conservationSlider.isVisible())
\r
84 jalview.bin.JalviewLite.addFrame(conservationSlider,
\r
85 conservationSlider.getTitle(), 420, 100);
\r
86 conservationSlider.addWindowListener(new WindowAdapter()
\r
88 public void windowClosing(WindowEvent e)
\r
90 conservationSlider = null;
\r
98 public static int setPIDSliderSource(AlignmentPanel ap, ColourSchemeI cs,
\r
101 SliderPanel pid = null;
\r
102 if (PIDSlider == null)
\r
104 pid = new SliderPanel(ap, 50, false, cs);
\r
105 PIDSlider = new Frame();
\r
106 PIDSlider.add(pid);
\r
110 pid = (SliderPanel) PIDSlider.getComponent(0);
\r
113 PIDSlider.setTitle("Percentage Identity Threshold (" + source + ")");
\r
115 if (ap.av.alignment.getGroups() != null)
\r
117 pid.setAllGroupsCheckEnabled(true);
\r
121 pid.setAllGroupsCheckEnabled(false);
\r
124 return pid.getValue();
\r
128 public static void showPIDSlider()
\r
132 conservationSlider.setVisible(false);
\r
133 conservationSlider = null;
\r
135 catch (Exception ex)
\r
138 if (!PIDSlider.isVisible())
\r
140 jalview.bin.JalviewLite.addFrame(PIDSlider, PIDSlider.getTitle(), 420,
\r
142 PIDSlider.addWindowListener(new WindowAdapter()
\r
144 public void windowClosing(WindowEvent e)
\r
153 public SliderPanel(AlignmentPanel ap, int value, boolean forConserve,
\r
158 forConservation = forConserve;
\r
159 undoButton.setVisible(false);
\r
160 applyButton.setVisible(false);
\r
161 if (forConservation)
\r
163 label.setText("Modify conservation visibility");
\r
164 slider.setMinimum(0);
\r
165 slider.setMaximum(50 + slider.getVisibleAmount());
\r
166 slider.setUnitIncrement(1);
\r
170 label.setText("Colour residues above % occurence");
\r
171 slider.setMinimum(0);
\r
172 slider.setMaximum(100 + slider.getVisibleAmount());
\r
173 slider.setBlockIncrement(1);
\r
176 slider.addAdjustmentListener(new AdjustmentListener()
\r
178 public void adjustmentValueChanged(AdjustmentEvent evt)
\r
180 valueField.setText(slider.getValue() + "");
\r
181 valueChanged(slider.getValue());
\r
185 slider.setValue(value);
\r
186 valueField.setText(value + "");
\r
189 public void valueChanged(int i)
\r
196 ColourSchemeI toChange = null;
\r
197 Vector allGroups = null;
\r
198 int groupIndex = 0;
\r
200 if (allGroupsCheck.getState())
\r
202 allGroups = ap.av.alignment.getGroups();
\r
203 groupIndex = allGroups.size() - 1;
\r
210 while (groupIndex > -1)
\r
212 if (allGroups != null)
\r
214 toChange = ( (SequenceGroup) allGroups.elementAt(groupIndex)).cs;
\r
217 if (forConservation)
\r
219 toChange.setConservationInc(i);
\r
223 toChange.setThreshold(i, ap.av.getIgnoreGapsConsensus());
\r
229 ap.seqPanel.seqCanvas.repaint();
\r
233 public void setAllGroupsCheckEnabled(boolean b)
\r
235 allGroupsCheck.setEnabled(b);
\r
238 public void valueField_actionPerformed(ActionEvent e)
\r
242 int i = Integer.parseInt(valueField.getText());
\r
243 slider.setValue(i);
\r
245 catch (Exception ex)
\r
247 valueField.setText(slider.getValue() + "");
\r
251 public void setValue(int value)
\r
253 slider.setValue(value);
\r
256 public int getValue()
\r
258 return Integer.parseInt(valueField.getText());
\r