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