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
45 ConservationColourScheme ccs = (ConservationColourScheme) cs;
\r
47 if (conservationSlider == null)
\r
49 sp = new SliderPanel(ap, ccs.inc, true, cs);
\r
50 conservationSlider = new Frame();
\r
51 conservationSlider.add(sp);
\r
55 sp = (SliderPanel) conservationSlider.getComponent(0);
\r
59 conservationSlider.setTitle("Conservation Colour Increment (" + source +
\r
61 if (ap.av.alignment.getGroups() != null)
\r
63 sp.setAllGroupsCheckEnabled(true);
\r
67 sp.setAllGroupsCheckEnabled(false);
\r
70 return sp.getValue();
\r
73 public static void showConservationSlider()
\r
77 PIDSlider.setVisible(false);
\r
80 catch (Exception ex)
\r
83 if (!conservationSlider.isVisible())
\r
85 jalview.bin.JalviewLite.addFrame(conservationSlider,
\r
86 conservationSlider.getTitle(), 420, 100);
\r
87 conservationSlider.addWindowListener(new WindowAdapter()
\r
89 public void windowClosing(WindowEvent e)
\r
91 conservationSlider = null;
\r
99 public static int setPIDSliderSource(AlignmentPanel ap, ColourSchemeI cs,
\r
102 SliderPanel pid = null;
\r
103 if (PIDSlider == null)
\r
105 pid = new SliderPanel(ap, 50, false, cs);
\r
106 PIDSlider = new Frame();
\r
107 PIDSlider.add(pid);
\r
111 pid = (SliderPanel) PIDSlider.getComponent(0);
\r
114 PIDSlider.setTitle("Percentage Identity Threshold (" + source + ")");
\r
116 if (ap.av.alignment.getGroups() != null)
\r
118 pid.setAllGroupsCheckEnabled(true);
\r
122 pid.setAllGroupsCheckEnabled(false);
\r
125 return pid.getValue();
\r
129 public static void showPIDSlider()
\r
133 conservationSlider.setVisible(false);
\r
134 conservationSlider = null;
\r
136 catch (Exception ex)
\r
139 if (!PIDSlider.isVisible())
\r
141 jalview.bin.JalviewLite.addFrame(PIDSlider, PIDSlider.getTitle(), 420,
\r
143 PIDSlider.addWindowListener(new WindowAdapter()
\r
145 public void windowClosing(WindowEvent e)
\r
154 public SliderPanel(AlignmentPanel ap, int value, boolean forConserve,
\r
159 forConservation = forConserve;
\r
160 undoButton.setVisible(false);
\r
161 applyButton.setVisible(false);
\r
162 if (forConservation)
\r
164 label.setText("Modify conservation visibility");
\r
165 slider.setMinimum(0);
\r
166 slider.setMaximum(50 + slider.getVisibleAmount());
\r
167 slider.setUnitIncrement(1);
\r
171 label.setText("Colour residues above % occurence");
\r
172 slider.setMinimum(0);
\r
173 slider.setMaximum(100 + slider.getVisibleAmount());
\r
174 slider.setBlockIncrement(1);
\r
177 slider.addAdjustmentListener(new AdjustmentListener()
\r
179 public void adjustmentValueChanged(AdjustmentEvent evt)
\r
181 valueField.setText(slider.getValue() + "");
\r
182 valueChanged(slider.getValue());
\r
186 slider.setValue(value);
\r
187 valueField.setText(value + "");
\r
190 public void valueChanged(int i)
\r
197 ColourSchemeI toChange = null;
\r
198 Vector allGroups = null;
\r
199 int groupIndex = 0;
\r
201 if (allGroupsCheck.getState())
\r
203 allGroups = ap.av.alignment.getGroups();
\r
204 groupIndex = allGroups.size() - 1;
\r
211 while (groupIndex > -1)
\r
213 if (allGroups != null)
\r
215 toChange = ( (SequenceGroup) allGroups.elementAt(groupIndex)).cs;
\r
218 if (forConservation)
\r
220 if (toChange instanceof ConservationColourScheme)
\r
222 ( (ConservationColourScheme) toChange).inc = i;
\r
227 ( (ResidueColourScheme) toChange).setThreshold(i, ap.av.getIgnoreGapsConsensus());
\r
233 ap.seqPanel.seqCanvas.repaint();
\r
237 public void setAllGroupsCheckEnabled(boolean b)
\r
239 allGroupsCheck.setEnabled(b);
\r
242 public void valueField_actionPerformed(ActionEvent e)
\r
246 int i = Integer.parseInt(valueField.getText());
\r
247 slider.setValue(i);
\r
249 catch (Exception ex)
\r
251 valueField.setText(slider.getValue() + "");
\r
255 public void setValue(int value)
\r
257 slider.setValue(value);
\r
260 public int getValue()
\r
262 return Integer.parseInt(valueField.getText());
\r