Add a slider model to the IntegerModel, add a spinner to shine parameter
This commit is contained in:
parent
591b05d867
commit
efb05a554c
@ -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 /////////////
|
||||||
|
@ -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");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user