package jas2.swingstudio;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
import jas2.util.*;
import jas2.util.layout.*;
public class RebinSlider extends JToolBar implements ChangeListener, ActionListener
{
public RebinSlider()
{
slider = new JSlider();
slider.setOrientation(JSlider.HORIZONTAL);
slider.setToolTipText("Rebin Slider");
text = new JTextField(4);
text.setToolTipText("Bins");
text.addActionListener(this);
xy = new JComboBox(new String[]{"X","Y"});
xy.setToolTipText("Axis Selector");
xy.addActionListener(this);
setState(false);
xy.setEnabled(false);
add(slider);
add(text);
add(xy);
}
public void setModel(BoundedRangeModel xModel, BoundedRangeModel yModel)
{
this.xModel = xModel;
this.yModel = yModel;
if (xModel != null)
{
setModel(xModel);
xy.setSelectedIndex(0);
}
else if (yModel != null)
{
setModel(yModel);
xy.setSelectedIndex(1);
}
xy.setEnabled(xModel != null && yModel != null);
setState(xModel != null || yModel != null);
}
private void setModel(BoundedRangeModel model)
{
if (model != null)
{
slider.setModel(model);
text.setText(String.valueOf(model.getValue()));
}
if (m_model != null) m_model.removeChangeListener(this);
m_model = model;
if (m_model != null) m_model.addChangeListener(this);
}
public void stateChanged(ChangeEvent ce)
{
text.setText(String.valueOf(m_model.getValue()));
}
public void actionPerformed(ActionEvent ae)
{
Object source = ae.getSource();
if (source == text)
{
try
{
m_model.setValue(Integer.parseInt(text.getText()));
}
catch (NumberFormatException x) {}
}
else if (source == xy)
{
int index = xy.getSelectedIndex();
if (index == 0) setModel(xModel);
else setModel(yModel);
}
}
private void setState(boolean state)
{
slider.setEnabled(state);
text.setEnabled(state);
}
private JSlider slider;
private JTextField text;
private JComboBox xy;
private BoundedRangeModel m_model;
private BoundedRangeModel xModel;
private BoundedRangeModel yModel;
}
Ads help maintain this website.