Apply config listener action to common classes

This commit is contained in:
SiboVG 2024-01-27 01:15:42 +01:00
parent b795fb0eb5
commit b5704c108c
13 changed files with 83 additions and 92 deletions

View File

@ -86,7 +86,7 @@ public class RockSimCommonConstants {
public static final String RING_TAIL = "RingTail";
public static final String EXTERNAL_POD = "ExternalPod";
public static final String DETACHABLE = "Detachable";
public static final String REMOVED = "Removed";
public static final String REMOVED = "Removed"; // Mark pod as ejected
public static final String TEXTURE = "Texture";
public static final String TUBE_COUNT = "TubeCount";
public static final String MAX_TUBES_ALLOWED = "MaxTubesAllowed";

View File

@ -116,8 +116,8 @@ public class BodyTube extends SymmetricComponent implements BoxBounded, MotorMou
@Override
public void setOuterRadius(double radius) {
for (RocketComponent listener : configListeners) {
if (listener instanceof BodyTube) {
((BodyTube) listener).setOuterRadius(radius);
if (listener instanceof Coaxial) {
((Coaxial) listener).setOuterRadius(radius);
}
}
@ -251,8 +251,8 @@ public class BodyTube extends SymmetricComponent implements BoxBounded, MotorMou
@Override
public void setInnerRadius(double r) {
for (RocketComponent listener : configListeners) {
if (listener instanceof BodyTube) {
((BodyTube) listener).setInnerRadius(r);
if (listener instanceof Coaxial) {
((Coaxial) listener).setInnerRadius(r);
}
}
@ -399,10 +399,10 @@ public class BodyTube extends SymmetricComponent implements BoxBounded, MotorMou
@Override
public void setMotorConfig(MotorConfiguration newMotorConfig, FlightConfigurationId fcid){
for (RocketComponent listener : configListeners) {
if (listener instanceof BodyTube) {
if (listener instanceof MotorMount) {
if (newMotorConfig != null) {
BodyTube tube = (BodyTube) listener;
MotorConfiguration config = tube.getMotorConfig(fcid);
MotorMount mount = (MotorMount) listener;
MotorConfiguration config = mount.getMotorConfig(fcid);
config.copyFrom(newMotorConfig);
}
}
@ -440,8 +440,8 @@ public class BodyTube extends SymmetricComponent implements BoxBounded, MotorMou
@Override
public void setMotorMount(boolean _active){
for (RocketComponent listener : configListeners) {
if (listener instanceof BodyTube) {
((BodyTube) listener).setMotorMount(_active);
if (listener instanceof MotorMount) {
((MotorMount) listener).setMotorMount(_active);
}
}
@ -480,8 +480,8 @@ public class BodyTube extends SymmetricComponent implements BoxBounded, MotorMou
@Override
public void setMotorOverhang(double overhang) {
for (RocketComponent listener : configListeners) {
if (listener instanceof BodyTube) {
((BodyTube) listener).setMotorOverhang(overhang);
if (listener instanceof MotorMount) {
((MotorMount) listener).setMotorOverhang(overhang);
}
}

View File

@ -138,9 +138,7 @@ public abstract class ComponentAssembly extends RocketComponent implements Axial
@Override
public void setAxialMethod( final AxialMethod newMethod ) {
for (RocketComponent listener : configListeners) {
if (listener instanceof ComponentAssembly) {
((ComponentAssembly) listener).setAxialMethod(newMethod);
}
listener.setAxialMethod(newMethod);
}
if (null == this.parent) {

View File

@ -5,6 +5,7 @@ import java.util.*;
import java.util.ArrayList;
import net.sf.openrocket.rocketcomponent.position.AnglePositionable;
import net.sf.openrocket.util.*;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@ -1310,8 +1311,8 @@ public abstract class FinSet extends ExternalComponent implements AxialPositiona
@Override
public void setAngleOffset(final double angleRadians) {
for (RocketComponent listener : configListeners) {
if (listener instanceof FinSet) {
((FinSet) listener).setAngleOffset(angleRadians);
if (listener instanceof AnglePositionable) {
((AnglePositionable) listener).setAngleOffset(angleRadians);
}
}

View File

@ -320,8 +320,8 @@ public class InnerTube extends ThicknessRingComponent implements AxialPositionab
@Override
public void setMotorConfig( final MotorConfiguration newMotorConfig, final FlightConfigurationId fcid){
for (RocketComponent listener : configListeners) {
if (listener instanceof InnerTube) {
((InnerTube) listener).setMotorConfig(newMotorConfig, fcid);
if (listener instanceof MotorMount) {
((MotorMount) listener).setMotorConfig(newMotorConfig, fcid);
}
}
@ -356,8 +356,8 @@ public class InnerTube extends ThicknessRingComponent implements AxialPositionab
@Override
public void setMotorMount(boolean _active){
for (RocketComponent listener : configListeners) {
if (listener instanceof InnerTube) {
((InnerTube) listener).setMotorMount(_active);
if (listener instanceof MotorMount) {
((MotorMount) listener).setMotorMount(_active);
}
}
@ -397,8 +397,8 @@ public class InnerTube extends ThicknessRingComponent implements AxialPositionab
@Override
public void setMotorOverhang(double overhang) {
for (RocketComponent listener : configListeners) {
if (listener instanceof InnerTube) {
((InnerTube) listener).setMotorOverhang(overhang);
if (listener instanceof MotorMount) {
((MotorMount) listener).setMotorOverhang(overhang);
}
}

View File

@ -47,8 +47,8 @@ public class LaunchLug extends Tube implements AnglePositionable, BoxBounded, Li
@Override
public void setOuterRadius(double radius) {
for (RocketComponent listener : configListeners) {
if (listener instanceof LaunchLug) {
((LaunchLug) listener).setOuterRadius(radius);
if (listener instanceof Coaxial) {
((Coaxial) listener).setOuterRadius(radius);
}
}
@ -68,8 +68,8 @@ public class LaunchLug extends Tube implements AnglePositionable, BoxBounded, Li
@Override
public void setInnerRadius(double innerRadius) {
for (RocketComponent listener : configListeners) {
if (listener instanceof LaunchLug) {
((LaunchLug) listener).setInnerRadius(innerRadius);
if (listener instanceof Coaxial) {
((Coaxial) listener).setInnerRadius(innerRadius);
}
}
@ -103,8 +103,8 @@ public class LaunchLug extends Tube implements AnglePositionable, BoxBounded, Li
@Override
public void setAngleOffset(double newAngleRadians) {
for (RocketComponent listener : configListeners) {
if (listener instanceof LaunchLug) {
((LaunchLug) listener).setAngleOffset(newAngleRadians);
if (listener instanceof AnglePositionable) {
((AnglePositionable) listener).setAngleOffset(newAngleRadians);
}
}
@ -276,8 +276,8 @@ public class LaunchLug extends Tube implements AnglePositionable, BoxBounded, Li
@Override
public void setInstanceSeparation(final double _separation){
for (RocketComponent listener : configListeners) {
if (listener instanceof LaunchLug) {
((LaunchLug) listener).setInstanceSeparation(_separation);
if (listener instanceof LineInstanceable) {
((LineInstanceable) listener).setInstanceSeparation(_separation);
}
}
@ -291,9 +291,7 @@ public class LaunchLug extends Tube implements AnglePositionable, BoxBounded, Li
@Override
public void setInstanceCount( final int newCount ){
for (RocketComponent listener : configListeners) {
if (listener instanceof LaunchLug) {
((LaunchLug) listener).setInstanceCount(newCount);
}
listener.setInstanceCount(newCount);
}
if (newCount == this.instanceCount || newCount <= 0) {

View File

@ -5,8 +5,10 @@ import java.util.Collection;
import net.sf.openrocket.l10n.Translator;
import net.sf.openrocket.rocketcomponent.position.AngleMethod;
import net.sf.openrocket.rocketcomponent.position.AnglePositionable;
import net.sf.openrocket.rocketcomponent.position.AxialMethod;
import net.sf.openrocket.rocketcomponent.position.RadiusMethod;
import net.sf.openrocket.rocketcomponent.position.RadiusPositionable;
import net.sf.openrocket.startup.Application;
import net.sf.openrocket.util.Coordinate;
import net.sf.openrocket.util.MathUtil;
@ -118,9 +120,7 @@ public class ParallelStage extends AxialStage implements FlightConfigurableCompo
@Override
public void setInstanceCount( final int newCount ){
for (RocketComponent listener : configListeners) {
if (listener instanceof ParallelStage) {
((ParallelStage) listener).setInstanceCount(newCount);
}
listener.setInstanceCount(newCount);
}
mutex.verify();
@ -182,9 +182,7 @@ public class ParallelStage extends AxialStage implements FlightConfigurableCompo
@Override
public void setAxialMethod(final AxialMethod _newPosition) {
for (RocketComponent listener : configListeners) {
if (listener instanceof ParallelStage) {
((ParallelStage) listener).setAxialMethod(_newPosition);
}
listener.setAxialMethod(_newPosition);
}
if (null == this.parent) {
@ -199,8 +197,8 @@ public class ParallelStage extends AxialStage implements FlightConfigurableCompo
@Override
public void setRadiusOffset(final double radius_m) {
for (RocketComponent listener : configListeners) {
if (listener instanceof ParallelStage) {
((ParallelStage) listener).setRadiusOffset(radius_m);
if (listener instanceof RadiusPositionable) {
((RadiusPositionable) listener).setRadiusOffset(radius_m);
}
}
@ -217,8 +215,8 @@ public class ParallelStage extends AxialStage implements FlightConfigurableCompo
@Override
public void setAngleOffset(final double angle_rad) {
for (RocketComponent listener : configListeners) {
if (listener instanceof ParallelStage) {
((ParallelStage) listener).setAngleOffset(angle_rad);
if (listener instanceof AnglePositionable) {
((AnglePositionable) listener).setAngleOffset(angle_rad);
}
}
@ -230,8 +228,8 @@ public class ParallelStage extends AxialStage implements FlightConfigurableCompo
@Override
public void setRadius(RadiusMethod requestedMethod, double requestedRadius ) {
for (RocketComponent listener : configListeners) {
if (listener instanceof ParallelStage) {
((ParallelStage) listener).setRadius(requestedMethod, requestedRadius);
if (listener instanceof RadiusPositionable) {
((RadiusPositionable) listener).setRadius(requestedMethod, requestedRadius);
}
}
@ -257,8 +255,8 @@ public class ParallelStage extends AxialStage implements FlightConfigurableCompo
@Override
public void setAngleMethod(AngleMethod newAngleMethod ) {
for (RocketComponent listener : configListeners) {
if (listener instanceof ParallelStage) {
((ParallelStage) listener).setAngleMethod(newAngleMethod);
if (listener instanceof AnglePositionable) {
((AnglePositionable) listener).setAngleMethod(newAngleMethod);
}
}
@ -275,8 +273,8 @@ public class ParallelStage extends AxialStage implements FlightConfigurableCompo
@Override
public void setRadiusMethod(RadiusMethod newMethod) {
for (RocketComponent listener : configListeners) {
if (listener instanceof ParallelStage) {
((ParallelStage) listener).setRadiusMethod(newMethod);
if (listener instanceof RadiusPositionable) {
((RadiusPositionable) listener).setRadiusMethod(newMethod);
}
}

View File

@ -3,8 +3,10 @@ package net.sf.openrocket.rocketcomponent;
import net.sf.openrocket.l10n.Translator;
import net.sf.openrocket.rocketcomponent.position.AngleMethod;
import net.sf.openrocket.rocketcomponent.position.AnglePositionable;
import net.sf.openrocket.rocketcomponent.position.AxialMethod;
import net.sf.openrocket.rocketcomponent.position.RadiusMethod;
import net.sf.openrocket.rocketcomponent.position.RadiusPositionable;
import net.sf.openrocket.startup.Application;
import net.sf.openrocket.util.BugException;
import net.sf.openrocket.util.Coordinate;
@ -165,9 +167,7 @@ public class PodSet extends ComponentAssembly implements RingInstanceable {
@Override
public void setInstanceCount(int newCount ){
for (RocketComponent listener : configListeners) {
if (listener instanceof PodSet) {
((PodSet) listener).setInstanceCount(newCount);
}
listener.setInstanceCount(newCount);
}
mutex.verify();
@ -198,8 +198,8 @@ public class PodSet extends ComponentAssembly implements RingInstanceable {
@Override
public void setAngleOffset(double angle_rad) {
for (RocketComponent listener : configListeners) {
if (listener instanceof PodSet) {
((PodSet) listener).setAngleOffset(angle_rad);
if (listener instanceof AnglePositionable) {
((AnglePositionable) listener).setAngleOffset(angle_rad);
}
}
@ -220,8 +220,8 @@ public class PodSet extends ComponentAssembly implements RingInstanceable {
@Override
public void setRadiusOffset(double radius_m) {
for (RocketComponent listener : configListeners) {
if (listener instanceof PodSet) {
((PodSet) listener).setRadiusOffset(radius_m);
if (listener instanceof RadiusPositionable) {
((RadiusPositionable) listener).setRadiusOffset(radius_m);
}
}
@ -245,8 +245,8 @@ public class PodSet extends ComponentAssembly implements RingInstanceable {
@Override
public void setRadiusMethod(RadiusMethod newMethod ) {
for (RocketComponent listener : configListeners) {
if (listener instanceof PodSet) {
((PodSet) listener).setRadiusMethod(newMethod);
if (listener instanceof RadiusPositionable) {
((RadiusPositionable) listener).setRadiusMethod(newMethod);
}
}
@ -260,8 +260,8 @@ public class PodSet extends ComponentAssembly implements RingInstanceable {
@Override
public void setRadius(RadiusMethod requestMethod, double requestRadius ) {
for (RocketComponent listener : configListeners) {
if (listener instanceof PodSet) {
((PodSet) listener).setRadius(requestMethod, requestRadius);
if (listener instanceof RadiusPositionable) {
((RadiusPositionable) listener).setRadius(requestMethod, requestRadius);
}
}

View File

@ -53,8 +53,8 @@ public abstract class RadiusRingComponent extends RingComponent implements Coaxi
r = Math.max(r,0);
for (RocketComponent listener : configListeners) {
if (listener instanceof RadiusRingComponent) {
((RadiusRingComponent) listener).setOuterRadius(r);
if (listener instanceof Coaxial) {
((Coaxial) listener).setOuterRadius(r);
}
}
@ -82,8 +82,8 @@ public abstract class RadiusRingComponent extends RingComponent implements Coaxi
r = Math.max(r,0);
for (RocketComponent listener : configListeners) {
if (listener instanceof RadiusRingComponent) {
((RadiusRingComponent) listener).setInnerRadius(r);
if (listener instanceof Coaxial) {
((Coaxial) listener).setInnerRadius(r);
}
}
@ -109,8 +109,8 @@ public abstract class RadiusRingComponent extends RingComponent implements Coaxi
@Override
public void setThickness(double thickness) {
for (RocketComponent listener : configListeners) {
if (listener instanceof RadiusRingComponent) {
((RadiusRingComponent) listener).setThickness(thickness);
if (listener instanceof RingComponent) {
((RingComponent) listener).setThickness(thickness);
}
}
@ -131,8 +131,8 @@ public abstract class RadiusRingComponent extends RingComponent implements Coaxi
this.instanceSeparation = _separation;
for (RocketComponent listener : configListeners) {
if (listener instanceof RadiusRingComponent) {
((RadiusRingComponent) listener).setInstanceSeparation(_separation);
if (listener instanceof LineInstanceable) {
((LineInstanceable) listener).setInstanceSeparation(_separation);
}
}
}
@ -140,9 +140,7 @@ public abstract class RadiusRingComponent extends RingComponent implements Coaxi
@Override
public void setInstanceCount( final int newCount ){
for (RocketComponent listener : configListeners) {
if (listener instanceof RadiusRingComponent) {
((RadiusRingComponent) listener).setInstanceCount(newCount);
}
listener.setInstanceCount(newCount);
}
if( 0 < newCount ){

View File

@ -227,8 +227,8 @@ public class RailButton extends ExternalComponent implements AnglePositionable,
@Override
public void setAngleOffset(double angle_rad){
for (RocketComponent listener : configListeners) {
if (listener instanceof RailButton) {
((RailButton) listener).setAngleOffset(angle_rad);
if (listener instanceof AnglePositionable) {
((AnglePositionable) listener).setAngleOffset(angle_rad);
}
}
@ -316,8 +316,8 @@ public class RailButton extends ExternalComponent implements AnglePositionable,
@Override
public void setInstanceSeparation(double _separation){
for (RocketComponent listener : configListeners) {
if (listener instanceof RailButton) {
((RailButton) listener).setInstanceSeparation(_separation);
if (listener instanceof LineInstanceable) {
((LineInstanceable) listener).setInstanceSeparation(_separation);
}
}
@ -331,9 +331,7 @@ public class RailButton extends ExternalComponent implements AnglePositionable,
@Override
public void setInstanceCount(int newCount ){
for (RocketComponent listener : configListeners) {
if (listener instanceof RailButton) {
((RailButton) listener).setInstanceCount(newCount);
}
listener.setInstanceCount(newCount);
}
if (newCount == this.instanceCount || newCount <= 0) {

View File

@ -2631,7 +2631,7 @@ public abstract class RocketComponent implements ChangeSource, Cloneable, Iterab
if (listener == null) {
return false;
}
if (listener.getConfigListeners().size() > 0) {
if (!listener.getConfigListeners().isEmpty()) {
throw new IllegalArgumentException("Listener already has config listeners");
}
if (configListeners.contains(listener) || listener == this) {

View File

@ -36,8 +36,8 @@ public class Sleeve extends RingComponent {
@Override
public void setOuterRadius(double r) {
for (RocketComponent listener : configListeners) {
if (listener instanceof Sleeve) {
((Sleeve) listener).setOuterRadius(r);
if (listener instanceof Coaxial) {
((Coaxial) listener).setOuterRadius(r);
}
}
@ -69,8 +69,8 @@ public class Sleeve extends RingComponent {
@Override
public void setInnerRadius(double r) {
for (RocketComponent listener : configListeners) {
if (listener instanceof Sleeve) {
((Sleeve) listener).setInnerRadius(r);
if (listener instanceof Coaxial) {
((Coaxial) listener).setInnerRadius(r);
}
}
@ -89,8 +89,8 @@ public class Sleeve extends RingComponent {
@Override
public void setThickness(double t) {
for (RocketComponent listener : configListeners) {
if (listener instanceof Sleeve) {
((Sleeve) listener).setThickness(t);
if (listener instanceof RingComponent) {
((RingComponent) listener).setThickness(t);
}
}

View File

@ -53,8 +53,8 @@ public abstract class ThicknessRingComponent extends RingComponent {
@Override
public void setOuterRadius(double r) {
for (RocketComponent listener : configListeners) {
if (listener instanceof ThicknessRingComponent) {
((ThicknessRingComponent) listener).setOuterRadius(r);
if (listener instanceof Coaxial) {
((Coaxial) listener).setOuterRadius(r);
}
}
@ -82,8 +82,8 @@ public abstract class ThicknessRingComponent extends RingComponent {
@Override
public void setThickness(double thickness) {
for (RocketComponent listener : configListeners) {
if (listener instanceof ThicknessRingComponent) {
((ThicknessRingComponent) listener).setThickness(thickness);
if (listener instanceof RingComponent) {
((RingComponent) listener).setThickness(thickness);
}
}
@ -108,8 +108,8 @@ public abstract class ThicknessRingComponent extends RingComponent {
@Override
public void setInnerRadius(double r) {
for (RocketComponent listener : configListeners) {
if (listener instanceof ThicknessRingComponent) {
((ThicknessRingComponent) listener).setInnerRadius(r);
if (listener instanceof Coaxial) {
((Coaxial) listener).setInnerRadius(r);
}
}