[Bugfix] Fixed UI issues related to 'Instanceable' implementation.
- RingComponent is no longer Instanceable. - Fixed setter settings for file loading: - Fixed methods references for Innstanceable-implementing classes - BoosterSet - PodSet - InnerTube - CenteringRing - LaunchButton - LaunchLug
This commit is contained in:
parent
80c4ef5254
commit
dac67b0f71
@ -21,9 +21,8 @@ import net.sf.openrocket.rocketcomponent.ExternalComponent.Finish;
|
||||
import net.sf.openrocket.rocketcomponent.FinSet;
|
||||
import net.sf.openrocket.rocketcomponent.FreeformFinSet;
|
||||
import net.sf.openrocket.rocketcomponent.InnerTube;
|
||||
import net.sf.openrocket.rocketcomponent.Instanceable;
|
||||
import net.sf.openrocket.rocketcomponent.LaunchButton;
|
||||
import net.sf.openrocket.rocketcomponent.LaunchLug;
|
||||
import net.sf.openrocket.rocketcomponent.LineInstanceable;
|
||||
import net.sf.openrocket.rocketcomponent.MassComponent;
|
||||
import net.sf.openrocket.rocketcomponent.MassObject;
|
||||
import net.sf.openrocket.rocketcomponent.NoseCone;
|
||||
@ -33,7 +32,6 @@ import net.sf.openrocket.rocketcomponent.RadiusRingComponent;
|
||||
import net.sf.openrocket.rocketcomponent.RecoveryDevice;
|
||||
import net.sf.openrocket.rocketcomponent.ReferenceType;
|
||||
import net.sf.openrocket.rocketcomponent.RingComponent;
|
||||
import net.sf.openrocket.rocketcomponent.RingInstanceable;
|
||||
import net.sf.openrocket.rocketcomponent.Rocket;
|
||||
import net.sf.openrocket.rocketcomponent.RocketComponent;
|
||||
import net.sf.openrocket.rocketcomponent.ShockCord;
|
||||
@ -143,6 +141,20 @@ class DocumentConfig {
|
||||
// BodyComponent
|
||||
setters.put("BodyComponent:length", new DoubleSetter(
|
||||
Reflection.findMethod(BodyComponent.class, "setLength", double.class)));
|
||||
|
||||
// BodyTube
|
||||
setters.put("BodyTube:radius", new DoubleSetter(
|
||||
Reflection.findMethod(BodyTube.class, "setOuterRadius", double.class),
|
||||
"auto",
|
||||
Reflection.findMethod(BodyTube.class, "setOuterRadiusAutomatic", boolean.class)));
|
||||
|
||||
// BoosterSet
|
||||
setters.put("BoosterSet:instancecount", new IntSetter(
|
||||
Reflection.findMethod(BoosterSet.class, "setInstanceCount",int.class)));
|
||||
setters.put("BoosterSet:radialoffset", new DoubleSetter(
|
||||
Reflection.findMethod(BoosterSet.class, "setRadialOffset", double.class)));
|
||||
setters.put("BoosterSet:angleoffset", new DoubleSetter(
|
||||
Reflection.findMethod(BoosterSet.class, "setAngularOffset", double.class)));
|
||||
|
||||
// SymmetricComponent
|
||||
setters.put("SymmetricComponent:thickness", new DoubleSetter(
|
||||
@ -150,12 +162,18 @@ class DocumentConfig {
|
||||
"filled",
|
||||
Reflection.findMethod(SymmetricComponent.class, "setFilled", boolean.class)));
|
||||
|
||||
// BodyTube
|
||||
setters.put("BodyTube:radius", new DoubleSetter(
|
||||
Reflection.findMethod(BodyTube.class, "setOuterRadius", double.class),
|
||||
"auto",
|
||||
Reflection.findMethod(BodyTube.class, "setOuterRadiusAutomatic", boolean.class)));
|
||||
|
||||
// LaunchButton
|
||||
setters.put("LaunchButton:instancecount", new IntSetter(
|
||||
Reflection.findMethod(LaunchButton.class, "setInstanceCount",int.class)));
|
||||
setters.put("LaunchButton:instanceseparation", new DoubleSetter(
|
||||
Reflection.findMethod( LaunchButton.class, "setInstanceSeparation", double.class)));
|
||||
|
||||
// LaunchLug
|
||||
setters.put("LaunchLug:instancecount", new IntSetter(
|
||||
Reflection.findMethod(LaunchLug.class, "setInstanceCount",int.class)));
|
||||
setters.put("LaunchLug:instanceseparation", new DoubleSetter(
|
||||
Reflection.findMethod( LaunchLug.class, "setInstanceSeparation", double.class)));
|
||||
|
||||
// Transition
|
||||
setters.put("Transition:shape", new EnumSetter<Transition.Shape>(
|
||||
Reflection.findMethod(Transition.class, "setType", Transition.Shape.class),
|
||||
@ -305,6 +323,8 @@ class DocumentConfig {
|
||||
setters.put("InnerTube:clusterrotation", new DoubleSetter(
|
||||
Reflection.findMethod(InnerTube.class, "setClusterRotation", double.class),
|
||||
Math.PI / 180.0));
|
||||
setters.put("InnerTube:instancecount", new IntSetter(
|
||||
Reflection.findMethod(InnerTube.class, "setInstanceCount",int.class)));
|
||||
|
||||
// RadiusRingComponent
|
||||
|
||||
@ -325,7 +345,12 @@ class DocumentConfig {
|
||||
Reflection.findMethod(CenteringRing.class, "setOuterRadius", double.class),
|
||||
"auto",
|
||||
Reflection.findMethod(CenteringRing.class, "setOuterRadiusAutomatic", boolean.class)));
|
||||
setters.put("CenteringRing:instancecount", new IntSetter(
|
||||
Reflection.findMethod(CenteringRing.class, "setInstanceCount",int.class)));
|
||||
setters.put("CenteringRing:instanceseparation", new DoubleSetter(
|
||||
Reflection.findMethod( CenteringRing.class, "setInstanceSeparation", double.class)));
|
||||
|
||||
|
||||
|
||||
// MassObject
|
||||
setters.put("MassObject:packedlength", new DoubleSetter(
|
||||
@ -387,6 +412,14 @@ class DocumentConfig {
|
||||
Reflection.findMethod(Parachute.class, "setLineMaterial", Material.class),
|
||||
Material.Type.LINE));
|
||||
|
||||
// PodSet
|
||||
setters.put("PodSet:instancecount", new IntSetter(
|
||||
Reflection.findMethod(PodSet.class, "setInstanceCount",int.class)));
|
||||
setters.put("PodSet:radialoffset", new DoubleSetter(
|
||||
Reflection.findMethod(PodSet.class, "setRadialOffset", double.class)));
|
||||
setters.put("PodSet:angleoffset", new DoubleSetter(
|
||||
Reflection.findMethod(PodSet.class, "setAngularOffset", double.class)));
|
||||
|
||||
// Streamer
|
||||
setters.put("Streamer:striplength", new DoubleSetter(
|
||||
Reflection.findMethod(Streamer.class, "setStripLength", double.class)));
|
||||
@ -414,6 +447,10 @@ class DocumentConfig {
|
||||
Reflection.findMethod(AxialStage.class, "getSeparationConfigurations"),
|
||||
Reflection.findMethod(StageSeparationConfiguration.class, "setSeparationDelay", double.class)));
|
||||
|
||||
// to place...
|
||||
|
||||
|
||||
|
||||
/*
|
||||
* The keys are of the form Class:param, where Class is the class name and param
|
||||
* the element name. Setters are searched for in descending class order.
|
||||
@ -424,18 +461,8 @@ class DocumentConfig {
|
||||
// setters.put("ComponentAssembly:radialoffset", new DoubleSetter(Reflection.findMethod(AxialStage.class, "setRadialOffset", double.class)));
|
||||
// setters.put("ComponentAssembly:angleoffset", new DoubleSetter(Reflection.findMethod(AxialStage.class, "setAngularOffset", double.class)));
|
||||
|
||||
setters.put("Instanceable:instancecount", new IntSetter(
|
||||
Reflection.findMethod(Instanceable.class, "setInstanceCount",int.class)));
|
||||
setters.put("RingInstanceable:radialoffset", new DoubleSetter(
|
||||
Reflection.findMethod(RingInstanceable.class, "setRadialOffset", double.class)));
|
||||
setters.put("RingInstance:angleoffset", new DoubleSetter(
|
||||
Reflection.findMethod(RingInstanceable.class, "setAngularOffset", double.class)));
|
||||
|
||||
setters.put("LineInstanceable:instanceseparation", new DoubleSetter(
|
||||
Reflection.findMethod( LineInstanceable.class, "setInstanceSeparation", double.class)));
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
@ -17,7 +17,11 @@ public class CenteringRing extends RadiusRingComponent implements LineInstanceab
|
||||
|
||||
private static final Translator trans = Application.getTranslator();
|
||||
|
||||
|
||||
protected int instanceCount = 1;
|
||||
// front-front along the positive rocket axis. i.e. [1,0,0];
|
||||
protected double instanceSeparation = 0;
|
||||
|
||||
|
||||
@Override
|
||||
public double getInnerRadius() {
|
||||
// Implement sibling inner radius automation
|
||||
@ -77,5 +81,32 @@ public class CenteringRing extends RadiusRingComponent implements LineInstanceab
|
||||
public Type getPresetType() {
|
||||
return ComponentPreset.Type.CENTERING_RING;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public double getInstanceSeparation(){
|
||||
return this.instanceSeparation;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setInstanceSeparation(final double _separation){
|
||||
this.instanceSeparation = _separation;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setInstanceCount( final int newCount ){
|
||||
if( 0 < newCount ){
|
||||
this.instanceCount = newCount;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getInstanceCount(){
|
||||
return this.instanceCount;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getPatternName(){
|
||||
return (this.getInstanceCount() + "-Line");
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -16,7 +16,7 @@ import net.sf.openrocket.util.MathUtil;
|
||||
*
|
||||
* @author Sampo Niskanen <sampo.niskanen@iki.fi>
|
||||
*/
|
||||
public abstract class RingComponent extends StructuralComponent implements Coaxial, LineInstanceable {
|
||||
public abstract class RingComponent extends StructuralComponent implements Coaxial {
|
||||
|
||||
protected boolean outerRadiusAutomatic = false;
|
||||
protected boolean innerRadiusAutomatic = false;
|
||||
@ -28,10 +28,6 @@ public abstract class RingComponent extends StructuralComponent implements Coaxi
|
||||
private double shiftY = 0;
|
||||
private double shiftZ = 0;
|
||||
|
||||
protected int instanceCount = 1;
|
||||
// front-front along the positive rocket axis. i.e. [1,0,0];
|
||||
protected double instanceSeparation = 0;
|
||||
|
||||
|
||||
@Override
|
||||
public abstract double getOuterRadius();
|
||||
@ -221,33 +217,4 @@ public abstract class RingComponent extends StructuralComponent implements Coaxi
|
||||
return ringRotationalUnitInertia(getOuterRadius(), getInnerRadius());
|
||||
}
|
||||
|
||||
|
||||
|
||||
@Override
|
||||
public double getInstanceSeparation(){
|
||||
return this.instanceSeparation;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setInstanceSeparation(final double _separation){
|
||||
this.instanceSeparation = _separation;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setInstanceCount( final int newCount ){
|
||||
if( 0 < newCount ){
|
||||
this.instanceCount = newCount;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getInstanceCount(){
|
||||
return this.instanceCount;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getPatternName(){
|
||||
return (this.getInstanceCount() + "-Line");
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -228,7 +228,7 @@ public class RocketFigure extends AbstractScaleFigure {
|
||||
public void paintComponent(Graphics g) {
|
||||
super.paintComponent(g);
|
||||
Graphics2D g2 = (Graphics2D) g;
|
||||
|
||||
System.err.println(" paintingComponent... ");
|
||||
|
||||
AffineTransform baseTransform = g2.getTransform();
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user