Add a slider model to the IntegerModel, add a spinner to shine parameter

This commit is contained in:
bkuker 2012-12-14 09:21:15 -05:00
parent 591b05d867
commit efb05a554c
2 changed files with 48 additions and 13 deletions

View File

@ -6,6 +6,8 @@ import java.util.ArrayList;
import java.util.EventListener; import java.util.EventListener;
import java.util.EventObject; import java.util.EventObject;
import javax.swing.BoundedRangeModel;
import javax.swing.DefaultBoundedRangeModel;
import javax.swing.SpinnerModel; import javax.swing.SpinnerModel;
import javax.swing.SpinnerNumberModel; import javax.swing.SpinnerNumberModel;
import javax.swing.event.ChangeEvent; import javax.swing.event.ChangeEvent;
@ -83,7 +85,44 @@ public class IntegerModel implements StateChangeListener {
return new IntegerSpinnerModel(); return new IntegerSpinnerModel();
} }
private class ValueSliderModel extends DefaultBoundedRangeModel implements BoundedRangeModel, StateChangeListener {
ValueSliderModel(){
super(IntegerModel.this.getValue(), 0, minValue, maxValue);
}
@Override
public void setValue(int newValue) {
IntegerModel.this.setValue(newValue);
}
@Override
public int getValue(){
return IntegerModel.this.getValue();
}
@Override
public void stateChanged(EventObject e) {
IntegerModel.this.fireStateChanged();
}
@Override
public void addChangeListener(ChangeListener l) {
IntegerModel.this.addChangeListener(l);
}
@Override
public void removeChangeListener(ChangeListener l) {
IntegerModel.this.removeChangeListener(l);
}
}
/**
* Returns a new BoundedRangeModel with the same base as the IntegerModel.
*
* @return A compatibility layer for Sliders.
*/
public BoundedRangeModel getSliderModel(){
return new ValueSliderModel();
}
//////////// Main model ///////////// //////////// Main model /////////////

View File

@ -6,7 +6,6 @@ import java.awt.event.ActionListener;
import java.lang.reflect.Method; import java.lang.reflect.Method;
import java.util.EventObject; import java.util.EventObject;
import javax.swing.DefaultBoundedRangeModel;
import javax.swing.JButton; import javax.swing.JButton;
import javax.swing.JCheckBox; import javax.swing.JCheckBox;
import javax.swing.JColorChooser; import javax.swing.JColorChooser;
@ -18,8 +17,6 @@ import javax.swing.JSeparator;
import javax.swing.JSlider; import javax.swing.JSlider;
import javax.swing.JSpinner; import javax.swing.JSpinner;
import javax.swing.SwingConstants; import javax.swing.SwingConstants;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;
import net.miginfocom.swing.MigLayout; import net.miginfocom.swing.MigLayout;
import net.sf.openrocket.appearance.Decal.EdgeMode; import net.sf.openrocket.appearance.Decal.EdgeMode;
@ -30,6 +27,7 @@ import net.sf.openrocket.gui.adaptors.BooleanModel;
import net.sf.openrocket.gui.adaptors.DecalModel; import net.sf.openrocket.gui.adaptors.DecalModel;
import net.sf.openrocket.gui.adaptors.DoubleModel; import net.sf.openrocket.gui.adaptors.DoubleModel;
import net.sf.openrocket.gui.adaptors.EnumModel; import net.sf.openrocket.gui.adaptors.EnumModel;
import net.sf.openrocket.gui.adaptors.IntegerModel;
import net.sf.openrocket.gui.components.BasicSlider; import net.sf.openrocket.gui.components.BasicSlider;
import net.sf.openrocket.gui.components.ColorIcon; import net.sf.openrocket.gui.components.ColorIcon;
import net.sf.openrocket.gui.components.StyledLabel; import net.sf.openrocket.gui.components.StyledLabel;
@ -274,16 +272,14 @@ public class AppearancePanel extends JPanel {
{// Placeholder {// Placeholder
add(new JLabel(trans.get("AppearanceCfg.lbl.shine"))); add(new JLabel(trans.get("AppearanceCfg.lbl.shine")));
JSlider shine = new JSlider(new DefaultBoundedRangeModel(ab.getShine(), 0, 0, 100){{ IntegerModel shineModel = new IntegerModel(ab, "Shine", 0, 100);
addChangeListener(new ChangeListener() { JSpinner spin = new JSpinner(shineModel.getSpinnerModel());
@Override JSlider slide = new JSlider(shineModel.getSliderModel());
public void stateChanged(final ChangeEvent e) { mDefault.addEnableComponent(slide, false);
ab.setShine( ((DefaultBoundedRangeModel)e.getSource()).getValue()); mDefault.addEnableComponent(spin, false);
}
}); add(spin, "split 2, w 50");
}}); add(slide, "w 100");
mDefault.addEnableComponent(shine, false);
add(shine, "w 100");
} }