package jalview.gui; import jalview.jbgui.*; import jalview.schemes.*; import jalview.datamodel.*; import java.awt.event.*; import javax.swing.event.*; import java.util.*; public class SliderPanel extends GSliderPanel { AlignmentPanel ap; boolean forConservation = true; ColourSchemeI cs; public SliderPanel(AlignmentPanel ap, int value, boolean forConserve, ColourSchemeI cs) { this.ap = ap; this.cs = cs; forConservation = forConserve; undoButton.setVisible(false); applyButton.setVisible(false); if(forConservation) { label.setText("Enter the value by which to decrease conservation colour intensity"); slider.setMinimum(0); slider.setMaximum(50); } else { label.setText("Enter the percent identity above which to colour residues"); slider.setMinimum(0); slider.setMaximum(100); } slider.addChangeListener( new ChangeListener() { public void stateChanged(ChangeEvent evt) { valueField.setText( slider.getValue()+"" ); valueChanged( slider.getValue() ); } }); slider.setValue(value); valueField.setText(value+""); } public void valueChanged(int i) { if(cs == null) return; ColourSchemeI toChange = null; Vector allGroups = null; int groupIndex = 0; if(allGroupsCheck.isSelected()) { allGroups = ap.av.alignment.getGroups(); groupIndex = allGroups.size()-1; } else toChange = cs; while( groupIndex > -1 ) { if(allGroups!=null) toChange = ((SequenceGroup)allGroups.get(groupIndex)).cs; if (forConservation) { if (toChange instanceof ConservationColourScheme) ( (ConservationColourScheme) toChange).inc = i; } else { if (toChange.canThreshold()) ( (ResidueColourScheme) toChange).setThreshold(i); } groupIndex--; } ap.seqPanel.seqCanvas.paintFlag=true; ap.seqPanel.repaint(); } public void setAllGroupsCheckEnabled(boolean b) { allGroupsCheck.setEnabled(b); } public void valueField_actionPerformed(ActionEvent e) { try{ int i = Integer.parseInt(valueField.getText()); slider.setValue(i); } catch(Exception ex) { valueField.setText( slider.getValue()+"" ); } } public void setValue(int value) { slider.setValue(value); } public int getValue() { return Integer.parseInt(valueField.getText()); } }