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.gui;
\r
22 import jalview.jbgui.*;
\r
23 import jalview.schemes.*;
\r
24 import jalview.datamodel.*;
\r
25 import java.awt.event.*;
\r
26 import javax.swing.event.*;
\r
27 import javax.swing.*;
\r
30 public class SliderPanel extends GSliderPanel
\r
33 boolean forConservation = true;
\r
36 static JInternalFrame conservationSlider;
\r
37 static JInternalFrame PIDSlider;
\r
39 public static int setConservationSlider(AlignmentPanel ap, ColourSchemeI cs, String source)
\r
41 SliderPanel sp = null;
\r
42 ConservationColourScheme ccs = (ConservationColourScheme)cs;
\r
44 if(conservationSlider == null)
\r
46 sp = new SliderPanel(ap, ccs.inc, true, cs);
\r
47 conservationSlider = new JInternalFrame();
\r
48 conservationSlider.setContentPane(sp);
\r
49 conservationSlider.setLayer(JLayeredPane.PALETTE_LAYER);
\r
53 sp = (SliderPanel)conservationSlider.getContentPane();
\r
57 conservationSlider.setTitle("Conservation Colour Increment ("+source+")");
\r
58 if(ap.av.alignment.getGroups()!=null)
\r
59 sp.setAllGroupsCheckEnabled( true );
\r
61 sp.setAllGroupsCheckEnabled( false);
\r
63 return sp.getValue();
\r
66 public static void showConservationSlider()
\r
69 PIDSlider.setClosed(true);
\r
71 }catch(Exception ex){}
\r
74 if(!conservationSlider.isVisible())
\r
76 Desktop.addInternalFrame(conservationSlider, conservationSlider.getTitle(), 420, 90, false);
\r
77 conservationSlider.addInternalFrameListener(new javax.swing.event.
\r
78 InternalFrameAdapter()
\r
80 public void internalFrameClosed(javax.swing.event.InternalFrameEvent e)
\r
82 conservationSlider = null;
\r
85 conservationSlider.setLayer(JLayeredPane.PALETTE_LAYER);
\r
90 public static int setPIDSliderSource(AlignmentPanel ap, ColourSchemeI cs, String source)
\r
92 SliderPanel pid = null;
\r
95 if (cs instanceof ResidueColourScheme)
\r
96 threshold = ( ( (ResidueColourScheme) cs).getThreshold());
\r
97 else if (cs instanceof ScoreColourScheme)
\r
98 threshold = ( ( (ScoreColourScheme) cs).getThreshold());
\r
101 if(PIDSlider == null)
\r
103 pid = new SliderPanel(ap, threshold, false, cs);
\r
104 PIDSlider = new JInternalFrame();
\r
105 PIDSlider.setContentPane(pid);
\r
106 PIDSlider.setLayer(JLayeredPane.PALETTE_LAYER);
\r
110 pid = (SliderPanel)PIDSlider.getContentPane();
\r
113 PIDSlider.setTitle("Percentage Identity Threshold ("+source+")");
\r
115 if (ap.av.alignment.getGroups() != null)
\r
116 pid.setAllGroupsCheckEnabled(true);
\r
118 pid.setAllGroupsCheckEnabled(false);
\r
120 return pid.getValue();
\r
124 public static void showPIDSlider()
\r
127 conservationSlider.setClosed(true);
\r
128 conservationSlider = null;
\r
129 }catch(Exception ex){}
\r
131 if(!PIDSlider.isVisible())
\r
133 Desktop.addInternalFrame(PIDSlider, PIDSlider.getTitle(), 420, 90, false);
\r
134 PIDSlider.setLayer(JLayeredPane.PALETTE_LAYER);
\r
135 PIDSlider.addInternalFrameListener(new javax.swing.event.
\r
136 InternalFrameAdapter()
\r
138 public void internalFrameClosed(javax.swing.event.InternalFrameEvent e)
\r
143 PIDSlider.setLayer(JLayeredPane.PALETTE_LAYER);
\r
149 public SliderPanel(AlignmentPanel ap, int value, boolean forConserve, ColourSchemeI cs)
\r
153 forConservation = forConserve;
\r
154 undoButton.setVisible(false);
\r
155 applyButton.setVisible(false);
\r
156 if(forConservation)
\r
158 label.setText("Enter value to increase conservation visibility");
\r
159 slider.setMinimum(0);
\r
160 slider.setMaximum(50);
\r
164 label.setText("Enter % identity above which to colour residues");
\r
165 slider.setMinimum(0);
\r
166 slider.setMaximum(100);
\r
171 slider.addChangeListener( new ChangeListener()
\r
173 public void stateChanged(ChangeEvent evt)
\r
175 valueField.setText( slider.getValue()+"" );
\r
176 valueChanged( slider.getValue() );
\r
180 slider.setValue(value);
\r
181 valueField.setText(value+"");
\r
184 public void valueChanged(int i)
\r
189 ColourSchemeI toChange = null;
\r
190 Vector allGroups = null;
\r
191 int groupIndex = 0;
\r
193 if(allGroupsCheck.isSelected())
\r
195 allGroups = ap.av.alignment.getGroups();
\r
196 groupIndex = allGroups.size()-1;
\r
202 while( groupIndex > -1 )
\r
204 if(allGroups!=null)
\r
205 toChange = ((SequenceGroup)allGroups.get(groupIndex)).cs;
\r
207 if (forConservation)
\r
209 if (toChange instanceof ConservationColourScheme)
\r
210 ( (ConservationColourScheme) toChange).inc = i;
\r
214 ( (ResidueColourScheme) toChange).setThreshold(i);
\r
220 ap.seqPanel.seqCanvas.repaint();
\r
224 public void setAllGroupsCheckEnabled(boolean b)
\r
226 allGroupsCheck.setEnabled(b);
\r
230 public void valueField_actionPerformed(ActionEvent e)
\r
233 int i = Integer.parseInt(valueField.getText());
\r
234 slider.setValue(i);
\r
236 catch(Exception ex)
\r
238 valueField.setText( slider.getValue()+"" );
\r
242 public void setValue(int value)
\r
244 slider.setValue(value);
\r
246 public int getValue()
\r
248 return Integer.parseInt(valueField.getText());
\r