2 * Jalview - A Sequence Alignment Editor and Viewer (Version 2.8.2)
3 * Copyright (C) 2014 The Jalview Authors
5 * This file is part of Jalview.
7 * Jalview is free software: you can redistribute it and/or
8 * modify it under the terms of the GNU General Public License
9 * as published by the Free Software Foundation, either version 3
10 * of the License, or (at your option) any later version.
12 * Jalview is distributed in the hope that it will be useful, but
13 * WITHOUT ANY WARRANTY; without even the implied warranty
14 * of MERCHANTABILITY or FITNESS FOR A PARTICULAR
15 * PURPOSE. See the GNU General Public License for more details.
17 * You should have received a copy of the GNU General Public License
18 * along with Jalview. If not, see <http://www.gnu.org/licenses/>.
19 * The Jalview Authors are detailed in the 'AUTHORS' file.
25 import java.awt.event.*;
27 import javax.swing.event.*;
29 import jalview.datamodel.*;
30 import jalview.jbgui.*;
31 import jalview.schemes.*;
32 import jalview.util.MessageManager;
40 public class SliderPanel extends GSliderPanel
42 static JInternalFrame conservationSlider;
44 static JInternalFrame PIDSlider;
48 boolean forConservation = true;
53 * Creates a new SliderPanel object.
64 public SliderPanel(final AlignmentPanel ap, int value,
65 boolean forConserve, ColourSchemeI cs)
69 forConservation = forConserve;
70 undoButton.setVisible(false);
71 applyButton.setVisible(false);
75 label.setText(MessageManager
76 .getString("label.enter_value_increase_conservation_visibility"));
78 slider.setMaximum(100);
82 label.setText(MessageManager
83 .getString("label.enter_percentage_identity_above_which_colour_residues"));
85 slider.setMaximum(100);
88 slider.addChangeListener(new ChangeListener()
90 public void stateChanged(ChangeEvent evt)
92 valueField.setText(slider.getValue() + "");
93 valueChanged(slider.getValue());
97 slider.addMouseListener(new MouseAdapter()
99 public void mouseReleased(MouseEvent evt)
101 ap.paintAlignment(true);
105 slider.setValue(value);
106 valueField.setText(value + "");
119 * @return DOCUMENT ME!
121 public static int setConservationSlider(AlignmentPanel ap,
122 ColourSchemeI cs, String source)
124 SliderPanel sp = null;
126 if (conservationSlider == null)
128 sp = new SliderPanel(ap, cs.getConservationInc(), true, cs);
129 conservationSlider = new JInternalFrame();
130 conservationSlider.setContentPane(sp);
131 conservationSlider.setLayer(JLayeredPane.PALETTE_LAYER);
135 sp = (SliderPanel) conservationSlider.getContentPane();
139 conservationSlider.setTitle(MessageManager.formatMessage("label.conservation_colour_increment", new String[]{source}));
141 if (ap.av.getAlignment().getGroups() != null)
143 sp.setAllGroupsCheckEnabled(true);
147 sp.setAllGroupsCheckEnabled(false);
150 return sp.getValue();
156 public static void showConservationSlider()
160 PIDSlider.setClosed(true);
162 } catch (Exception ex)
166 if (!conservationSlider.isVisible())
168 Desktop.addInternalFrame(conservationSlider,
169 conservationSlider.getTitle(), 420, 90, false);
171 .addInternalFrameListener(new javax.swing.event.InternalFrameAdapter()
173 public void internalFrameClosed(
174 javax.swing.event.InternalFrameEvent e)
176 conservationSlider = null;
179 conservationSlider.setLayer(JLayeredPane.PALETTE_LAYER);
193 * @return DOCUMENT ME!
195 public static int setPIDSliderSource(AlignmentPanel ap, ColourSchemeI cs,
198 SliderPanel pid = null;
200 int threshold = cs.getThreshold();
202 if (PIDSlider == null)
204 pid = new SliderPanel(ap, threshold, false, cs);
205 PIDSlider = new JInternalFrame();
206 PIDSlider.setContentPane(pid);
207 PIDSlider.setLayer(JLayeredPane.PALETTE_LAYER);
211 pid = (SliderPanel) PIDSlider.getContentPane();
215 PIDSlider.setTitle(MessageManager.formatMessage("label.percentage_identity_thereshold", new String[]{source}));
217 if (ap.av.getAlignment().getGroups() != null)
219 pid.setAllGroupsCheckEnabled(true);
223 pid.setAllGroupsCheckEnabled(false);
226 return pid.getValue();
232 public static void showPIDSlider()
236 conservationSlider.setClosed(true);
237 conservationSlider = null;
238 } catch (Exception ex)
242 if (!PIDSlider.isVisible())
244 Desktop.addInternalFrame(PIDSlider, PIDSlider.getTitle(), 420, 90,
246 PIDSlider.setLayer(JLayeredPane.PALETTE_LAYER);
248 .addInternalFrameListener(new javax.swing.event.InternalFrameAdapter()
250 public void internalFrameClosed(
251 javax.swing.event.InternalFrameEvent e)
256 PIDSlider.setLayer(JLayeredPane.PALETTE_LAYER);
266 public void valueChanged(int i)
273 ColourSchemeI toChange = cs;
274 Iterator<SequenceGroup> allGroups = null;
276 if (allGroupsCheck.isSelected())
278 allGroups = ap.av.getAlignment().getGroups().listIterator();
281 while (toChange != null)
285 toChange.setConservationInc(i);
289 toChange.setThreshold(i, ap.av.getIgnoreGapsConsensus());
291 if (allGroups != null && allGroups.hasNext())
293 while ((toChange = allGroups.next().cs) == null
294 && allGroups.hasNext())
303 ap.getSeqPanel().seqCanvas.repaint();
312 public void setAllGroupsCheckEnabled(boolean b)
314 allGroupsCheck.setEnabled(b);
323 public void valueField_actionPerformed(ActionEvent e)
327 int i = Integer.parseInt(valueField.getText());
329 } catch (NumberFormatException ex)
331 valueField.setText(slider.getValue() + "");
341 public void setValue(int value)
343 slider.setValue(value);
349 * @return DOCUMENT ME!
351 public int getValue()
353 return Integer.parseInt(valueField.getText());
356 public void slider_mouseReleased(MouseEvent e)
358 if (ap.overviewPanel != null)
360 ap.overviewPanel.updateOverviewImage();