Merge pull request #494 from teyrana/fix_329_events
[fixes #329] refactors some event-handling in component config dialogs
This commit is contained in:
commit
fee141d2fc
@ -15,6 +15,7 @@ import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import net.sf.openrocket.logging.Markers;
|
||||
import net.sf.openrocket.rocketcomponent.RocketComponent;
|
||||
import net.sf.openrocket.util.BugException;
|
||||
import net.sf.openrocket.util.ChangeSource;
|
||||
import net.sf.openrocket.util.Invalidatable;
|
||||
@ -101,8 +102,11 @@ public class BooleanModel extends AbstractAction implements StateChangeListener,
|
||||
this.valueName = valueName;
|
||||
|
||||
Method getter = null, setter = null;
|
||||
|
||||
|
||||
|
||||
if(RocketComponent.class.isAssignableFrom(source.getClass())) {
|
||||
((RocketComponent)source).addChangeListener(this);
|
||||
}
|
||||
|
||||
// Try get/is and set
|
||||
try {
|
||||
getter = source.getClass().getMethod("is" + valueName);
|
||||
|
@ -21,6 +21,7 @@ import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import net.sf.openrocket.logging.Markers;
|
||||
import net.sf.openrocket.rocketcomponent.RocketComponent;
|
||||
import net.sf.openrocket.unit.Unit;
|
||||
import net.sf.openrocket.unit.UnitGroup;
|
||||
import net.sf.openrocket.util.BugException;
|
||||
@ -657,6 +658,10 @@ public class DoubleModel implements StateChangeListener, ChangeSource, Invalidat
|
||||
this.minValue = min;
|
||||
this.maxValue = max;
|
||||
|
||||
if(RocketComponent.class.isAssignableFrom(source.getClass())) {
|
||||
((RocketComponent)source).addChangeListener(this);
|
||||
}
|
||||
|
||||
try {
|
||||
getMethod = source.getClass().getMethod("get" + valueName);
|
||||
} catch (NoSuchMethodException e) {
|
||||
|
@ -31,8 +31,6 @@ public class BodyTubeConfig extends RocketComponentConfig {
|
||||
|
||||
JPanel panel = new JPanel(new MigLayout("gap rel unrel", "[][65lp::][30lp::][]", ""));
|
||||
|
||||
|
||||
|
||||
//// Body tube length
|
||||
panel.add(new JLabel(trans.get("BodyTubecfg.lbl.Bodytubelength")));
|
||||
|
||||
@ -46,13 +44,11 @@ public class BodyTubeConfig extends RocketComponentConfig {
|
||||
panel.add(new UnitSelector(length), "growx");
|
||||
panel.add(new BasicSlider(length.getSliderModel(0, 0.5, maxLength)), "w 100lp, wrap");
|
||||
|
||||
|
||||
//// Body tube diameter
|
||||
panel.add(new JLabel(trans.get("BodyTubecfg.lbl.Outerdiameter")));
|
||||
|
||||
// Diameter = 2*Radius
|
||||
final DoubleModel od = new DoubleModel(component, "OuterRadius", 2, UnitGroup.UNITS_LENGTH, 0);
|
||||
component.addChangeListener(od);
|
||||
spin = new JSpinner(od.getSpinnerModel());
|
||||
spin.setEditor(new SpinnerEditor(spin));
|
||||
panel.add(spin, "growx");
|
||||
@ -71,8 +67,6 @@ public class BodyTubeConfig extends RocketComponentConfig {
|
||||
|
||||
// Diameter = 2*Radius
|
||||
final DoubleModel innerRadiusModel = new DoubleModel(component, "InnerRadius", 2, UnitGroup.UNITS_LENGTH, 0);
|
||||
component.addChangeListener(innerRadiusModel);
|
||||
|
||||
spin = new JSpinner(innerRadiusModel.getSpinnerModel());
|
||||
spin.setEditor(new SpinnerEditor(spin));
|
||||
panel.add(spin, "growx");
|
||||
@ -85,7 +79,6 @@ public class BodyTubeConfig extends RocketComponentConfig {
|
||||
panel.add(new JLabel(trans.get("BodyTubecfg.lbl.Wallthickness")));
|
||||
|
||||
final DoubleModel thicknessModel = new DoubleModel(component, "Thickness", UnitGroup.UNITS_LENGTH, 0);
|
||||
component.addChangeListener(thicknessModel);
|
||||
spin = new JSpinner(thicknessModel.getSpinnerModel());
|
||||
spin.setEditor(new SpinnerEditor(spin));
|
||||
panel.add(spin, "growx");
|
||||
@ -113,7 +106,6 @@ public class BodyTubeConfig extends RocketComponentConfig {
|
||||
tabbedPane.insertTab(trans.get("BodyTubecfg.tab.Motor"), null, motorConfig,
|
||||
trans.get("BodyTubecfg.tab.Motormountconf"), 1);
|
||||
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -102,7 +102,6 @@ public class NoseConeConfig extends RocketComponentConfig {
|
||||
panel.add(new JLabel(trans.get("NoseConeCfg.lbl.Basediam")));
|
||||
|
||||
final DoubleModel aftRadiusModel = new DoubleModel(component, "AftRadius", 2.0, UnitGroup.UNITS_LENGTH, 0); // Diameter = 2*Radius
|
||||
component.addChangeListener(aftRadiusModel);
|
||||
final JSpinner radiusSpinner = new JSpinner(aftRadiusModel.getSpinnerModel());
|
||||
radiusSpinner.setEditor(new SpinnerEditor(radiusSpinner));
|
||||
panel.add(radiusSpinner, "growx");
|
||||
@ -120,7 +119,6 @@ public class NoseConeConfig extends RocketComponentConfig {
|
||||
panel.add(new JLabel(trans.get("NoseConeCfg.lbl.Wallthickness")));
|
||||
|
||||
final DoubleModel thicknessModel = new DoubleModel(component, "Thickness", UnitGroup.UNITS_LENGTH, 0);
|
||||
component.addChangeListener(thicknessModel);
|
||||
final JSpinner thicknessSpinner = new JSpinner(thicknessModel.getSpinnerModel());
|
||||
thicknessSpinner.setEditor(new SpinnerEditor(thicknessSpinner));
|
||||
panel.add(thicknessSpinner, "growx");
|
||||
|
@ -110,9 +110,8 @@ public class TransitionConfig extends RocketComponentConfig {
|
||||
{ /// Fore diameter:
|
||||
panel.add(new JLabel(trans.get("TransitionCfg.lbl.Forediam")));
|
||||
|
||||
// Diameter = 2*Radius
|
||||
final DoubleModel foreRadiusModel = new DoubleModel(component, "ForeRadius", 2, UnitGroup.UNITS_LENGTH, 0);
|
||||
// Diameter = 2*Radius
|
||||
component.addChangeListener(foreRadiusModel );
|
||||
|
||||
final JSpinner foreRadiusSpinner = new JSpinner(foreRadiusModel.getSpinnerModel());
|
||||
foreRadiusSpinner.setEditor(new SpinnerEditor(foreRadiusSpinner));
|
||||
@ -130,9 +129,8 @@ public class TransitionConfig extends RocketComponentConfig {
|
||||
{ //// Aft diameter:
|
||||
panel.add(new JLabel(trans.get("TransitionCfg.lbl.Aftdiam")));
|
||||
|
||||
// Diameter = 2*Radius
|
||||
final DoubleModel aftRadiusModel = new DoubleModel(component, "AftRadius", 2, UnitGroup.UNITS_LENGTH, 0);
|
||||
// Diameter = 2*Radius
|
||||
component.addChangeListener(aftRadiusModel);
|
||||
|
||||
final JSpinner aftRadiusSpinner = new JSpinner(aftRadiusModel .getSpinnerModel());
|
||||
aftRadiusSpinner.setEditor(new SpinnerEditor(aftRadiusSpinner));
|
||||
@ -151,7 +149,6 @@ public class TransitionConfig extends RocketComponentConfig {
|
||||
panel.add(new JLabel(trans.get("TransitionCfg.lbl.Wallthickness")));
|
||||
|
||||
final DoubleModel thicknessModel = new DoubleModel(component, "Thickness", UnitGroup.UNITS_LENGTH, 0);
|
||||
component.addChangeListener(thicknessModel);
|
||||
|
||||
final JSpinner thicknessSpinner = new JSpinner(thicknessModel.getSpinnerModel());
|
||||
thicknessSpinner.setEditor(new SpinnerEditor(thicknessSpinner));
|
||||
|
Loading…
x
Reference in New Issue
Block a user