diff --git a/core/src/net/sf/openrocket/rocketcomponent/LaunchLug.java b/core/src/net/sf/openrocket/rocketcomponent/LaunchLug.java index 62f48bed9..4b0c18912 100644 --- a/core/src/net/sf/openrocket/rocketcomponent/LaunchLug.java +++ b/core/src/net/sf/openrocket/rocketcomponent/LaunchLug.java @@ -33,6 +33,7 @@ public class LaunchLug extends Tube implements AnglePositionable, BoxBounded, Li radius = 0.01 / 2; thickness = 0.001; length = 0.03; + this.setInstanceSeparation(this.length * 2); super.displayOrder_side = 15; // Order for displaying the component in the 2D side view super.displayOrder_back = 12; // Order for displaying the component in the 2D back view } @@ -277,7 +278,11 @@ public class LaunchLug extends Tube implements AnglePositionable, BoxBounded, Li } } + if (MathUtil.equals(this.instanceSeparation, _separation)) { + return; + } this.instanceSeparation = _separation; + fireComponentChangeEvent(ComponentChangeEvent.AERODYNAMIC_CHANGE); } @Override @@ -288,9 +293,11 @@ public class LaunchLug extends Tube implements AnglePositionable, BoxBounded, Li } } - if( 0 < newCount ){ - this.instanceCount = newCount; + if (newCount == this.instanceCount || newCount <= 0) { + return; } + this.instanceCount = newCount; + fireComponentChangeEvent(ComponentChangeEvent.BOTH_CHANGE); } @Override diff --git a/core/src/net/sf/openrocket/rocketcomponent/RailButton.java b/core/src/net/sf/openrocket/rocketcomponent/RailButton.java index f972a9eb9..734966339 100644 --- a/core/src/net/sf/openrocket/rocketcomponent/RailButton.java +++ b/core/src/net/sf/openrocket/rocketcomponent/RailButton.java @@ -320,6 +320,9 @@ public class RailButton extends ExternalComponent implements AnglePositionable, } } + if (MathUtil.equals(this.instanceSeparation, _separation)) { + return; + } this.instanceSeparation = _separation; fireComponentChangeEvent(ComponentChangeEvent.AERODYNAMIC_CHANGE); } @@ -332,9 +335,10 @@ public class RailButton extends ExternalComponent implements AnglePositionable, } } - if( 0 < newCount ){ - this.instanceCount = newCount; + if (newCount == this.instanceCount || newCount <= 0) { + return; } + this.instanceCount = newCount; fireComponentChangeEvent(ComponentChangeEvent.BOTH_CHANGE); } diff --git a/swing/src/net/sf/openrocket/gui/configdialog/LaunchLugConfig.java b/swing/src/net/sf/openrocket/gui/configdialog/LaunchLugConfig.java index bb19fa015..423256ebe 100644 --- a/swing/src/net/sf/openrocket/gui/configdialog/LaunchLugConfig.java +++ b/swing/src/net/sf/openrocket/gui/configdialog/LaunchLugConfig.java @@ -92,7 +92,10 @@ public class LaunchLugConfig extends RocketComponentConfig { order.add(((SpinnerEditor) spin.getEditor()).getTextField()); panel.add(new UnitSelector(m), "growx"); - panel.add(new BasicSlider(m.getSliderModel(0, 0.01)), "w 100lp, wrap"); + panel.add(new BasicSlider(m.getSliderModel(0, 0.01)), "w 100lp, wrap 30lp"); + + // -------- Instances ------ + panel.add(new InstancesPanel(component, order), "span, grow, wrap para"); primary.add(panel, "grow, gapright 40lp");