summary |
shortlog |
log |
commit | commitdiff |
tree
raw |
patch |
inline | side by side (from parent 1:
a297db7)
git-svn-id: https://openrocket.svn.sourceforge.net/svnroot/openrocket/trunk@489
180e2498-e6e9-4542-8430-
84ac67f01cd8
+2012-03-27 Sampo Niskanen
+
+ * [BUG] Inputting negative rotation angle values of components
+
2012-03-25 Sampo Niskanen
* [BUG] Removed locale-specific toLowerCase/toUpperCase
2012-03-25 Sampo Niskanen
* [BUG] Removed locale-specific toLowerCase/toUpperCase
2012-03-18 Jason Blood
* Updated importing images to freeform fin sets to work with color images with improved description
2012-03-18 Jason Blood
* Updated importing images to freeform fin sets to work with color images with improved description
2012-03-17 Sampo Niskanen
* Released version 12.03
2012-03-17 Sampo Niskanen
* Released version 12.03
JPanel mainPanel = new JPanel(new MigLayout());
JPanel mainPanel = new JPanel(new MigLayout());
JPanel panel = new JPanel(new MigLayout("gap rel unrel", "[][65lp::][30lp::]", ""));
//// Number of fins
JPanel panel = new JPanel(new MigLayout("gap rel unrel", "[][65lp::][30lp::]", ""));
//// Number of fins
spin.setEditor(new SpinnerEditor(spin));
panel.add(spin, "growx, wrap");
spin.setEditor(new SpinnerEditor(spin));
panel.add(spin, "growx, wrap");
//// Base rotation
panel.add(new JLabel(trans.get("EllipticalFinSetCfg.Rotation")));
//// Base rotation
panel.add(new JLabel(trans.get("EllipticalFinSetCfg.Rotation")));
- m = new DoubleModel(component, "BaseRotation", UnitGroup.UNITS_ANGLE, -Math.PI, Math.PI);
+ m = new DoubleModel(component, "BaseRotation", UnitGroup.UNITS_ANGLE);
spin = new JSpinner(m.getSpinnerModel());
spin.setEditor(new SpinnerEditor(spin));
spin = new JSpinner(m.getSpinnerModel());
spin.setEditor(new SpinnerEditor(spin));
panel.add(new UnitSelector(m), "growx");
panel.add(new BasicSlider(m.getSliderModel(-Math.PI, Math.PI)), "w 100lp, wrap");
panel.add(new UnitSelector(m), "growx");
panel.add(new BasicSlider(m.getSliderModel(-Math.PI, Math.PI)), "w 100lp, wrap");
//// Fin cant
JLabel label = new JLabel(trans.get("EllipticalFinSetCfg.Fincant"));
//// "The angle that the fins are canted with respect to the rocket
//// Fin cant
JLabel label = new JLabel(trans.get("EllipticalFinSetCfg.Fincant"));
//// "The angle that the fins are canted with respect to the rocket
panel.add(new BasicSlider(m.getSliderModel(-FinSet.MAX_CANT, FinSet.MAX_CANT)),
"w 100lp, wrap");
panel.add(new BasicSlider(m.getSliderModel(-FinSet.MAX_CANT, FinSet.MAX_CANT)),
"w 100lp, wrap");
//// Root chord
panel.add(new JLabel(trans.get("EllipticalFinSetCfg.Rootchord")));
//// Root chord
panel.add(new JLabel(trans.get("EllipticalFinSetCfg.Rootchord")));
panel.add(new UnitSelector(m), "growx");
panel.add(new BasicSlider(m.getSliderModel(0, 0.05, 0.2)), "w 100lp, wrap");
panel.add(new UnitSelector(m), "growx");
panel.add(new BasicSlider(m.getSliderModel(0, 0.05, 0.2)), "w 100lp, wrap");
//// Height
panel.add(new JLabel(trans.get("EllipticalFinSetCfg.Height")));
//// Height
panel.add(new JLabel(trans.get("EllipticalFinSetCfg.Height")));
panel.add(new UnitSelector(m), "growx");
panel.add(new BasicSlider(m.getSliderModel(0, 0.05, 0.2)), "w 100lp, wrap");
panel.add(new UnitSelector(m), "growx");
panel.add(new BasicSlider(m.getSliderModel(0, 0.05, 0.2)), "w 100lp, wrap");
//// Position
//// Position relative to:
panel.add(new JLabel(trans.get("EllipticalFinSetCfg.Positionrelativeto")));
//// Position
//// Position relative to:
panel.add(new JLabel(trans.get("EllipticalFinSetCfg.Positionrelativeto")));
RocketComponent.Position.MIDDLE,
RocketComponent.Position.BOTTOM,
RocketComponent.Position.ABSOLUTE
RocketComponent.Position.MIDDLE,
RocketComponent.Position.BOTTOM,
RocketComponent.Position.ABSOLUTE
panel.add(combo, "spanx, growx, wrap");
//// plus
panel.add(combo, "spanx, growx, wrap");
//// plus
new DoubleModel(component.getParent(), "Length"))),
"w 100lp, wrap");
new DoubleModel(component.getParent(), "Length"))),
"w 100lp, wrap");
//// Right portion
mainPanel.add(panel, "aligny 20%");
mainPanel.add(new JSeparator(SwingConstants.VERTICAL), "growy");
//// Right portion
mainPanel.add(panel, "aligny 20%");
mainPanel.add(new JSeparator(SwingConstants.VERTICAL), "growy");
panel = new JPanel(new MigLayout("gap rel unrel", "[][65lp::][30lp::]", ""));
panel = new JPanel(new MigLayout("gap rel unrel", "[][65lp::][30lp::]", ""));
//// Cross section
//// Fin cross section:
panel.add(new JLabel(trans.get("EllipticalFinSetCfg.FincrossSection")), "span, split");
//// Cross section
//// Fin cross section:
panel.add(new JLabel(trans.get("EllipticalFinSetCfg.FincrossSection")), "span, split");
new EnumModel<FinSet.CrossSection>(component, "CrossSection"));
panel.add(combo, "growx, wrap unrel");
new EnumModel<FinSet.CrossSection>(component, "CrossSection"));
panel.add(combo, "growx, wrap unrel");
//// Thickness:
panel.add(new JLabel(trans.get("EllipticalFinSetCfg.Thickness")));
//// Thickness:
panel.add(new JLabel(trans.get("EllipticalFinSetCfg.Thickness")));
panel.add(new UnitSelector(m), "growx");
panel.add(new BasicSlider(m.getSliderModel(0, 0.01)), "w 100lp, wrap 30lp");
panel.add(new UnitSelector(m), "growx");
panel.add(new BasicSlider(m.getSliderModel(0, 0.01)), "w 100lp, wrap 30lp");
//// Material
materialPanel(panel, Material.Type.BULK);
//// Material
materialPanel(panel, Material.Type.BULK);
mainPanel.add(panel, "aligny 20%");
addFinSetButtons();
mainPanel.add(panel, "aligny 20%");
addFinSetButtons();
//// Base rotation
panel.add(new JLabel(trans.get("FreeformFinSetCfg.lbl.Finrotation")));
//// Base rotation
panel.add(new JLabel(trans.get("FreeformFinSetCfg.lbl.Finrotation")));
- m = new DoubleModel(component, "BaseRotation", UnitGroup.UNITS_ANGLE, -Math.PI, Math.PI);
+ m = new DoubleModel(component, "BaseRotation", UnitGroup.UNITS_ANGLE);
spin = new JSpinner(m.getSpinnerModel());
spin.setEditor(new SpinnerEditor(spin));
spin = new JSpinner(m.getSpinnerModel());
spin.setEditor(new SpinnerEditor(spin));
JPanel primary = new JPanel(new MigLayout("fill"));
JPanel primary = new JPanel(new MigLayout("fill"));
JPanel panel = new JPanel(new MigLayout("gap rel unrel", "[][65lp::][30lp::][]", ""));
//// Body tube length
JPanel panel = new JPanel(new MigLayout("gap rel unrel", "[][65lp::][30lp::][]", ""));
//// Body tube length
panel.add(new UnitSelector(m), "growx");
panel.add(new BasicSlider(m.getSliderModel(0, 0.02, 0.1)), "w 100lp, wrap para");
panel.add(new UnitSelector(m), "growx");
panel.add(new BasicSlider(m.getSliderModel(0, 0.02, 0.1)), "w 100lp, wrap para");
//// Body tube diameter
//// Outer diameter:
panel.add(new JLabel(trans.get("LaunchLugCfg.lbl.Outerdiam")));
//// Body tube diameter
//// Outer diameter:
panel.add(new JLabel(trans.get("LaunchLugCfg.lbl.Outerdiam")));
panel.add(new UnitSelector(od), "growx");
panel.add(new BasicSlider(od.getSliderModel(0, 0.04, 0.2)), "w 100lp, wrap rel");
panel.add(new UnitSelector(od), "growx");
panel.add(new BasicSlider(od.getSliderModel(0, 0.04, 0.2)), "w 100lp, wrap rel");
//// Inner diameter:
panel.add(new JLabel(trans.get("LaunchLugCfg.lbl.Innerdiam")));
// Diameter = 2*Radius
m = new DoubleModel(component, "InnerRadius", 2, UnitGroup.UNITS_LENGTH, 0);
//// Inner diameter:
panel.add(new JLabel(trans.get("LaunchLugCfg.lbl.Innerdiam")));
// Diameter = 2*Radius
m = new DoubleModel(component, "InnerRadius", 2, UnitGroup.UNITS_LENGTH, 0);
spin = new JSpinner(m.getSpinnerModel());
spin.setEditor(new SpinnerEditor(spin));
panel.add(spin, "growx");
spin = new JSpinner(m.getSpinnerModel());
spin.setEditor(new SpinnerEditor(spin));
panel.add(spin, "growx");
panel.add(new UnitSelector(m), "growx");
panel.add(new BasicSlider(m.getSliderModel(new DoubleModel(0), od)), "w 100lp, wrap rel");
panel.add(new UnitSelector(m), "growx");
panel.add(new BasicSlider(m.getSliderModel(new DoubleModel(0), od)), "w 100lp, wrap rel");
//// Wall thickness
//// Thickness:
panel.add(new JLabel(trans.get("LaunchLugCfg.lbl.Thickness")));
//// Wall thickness
//// Thickness:
panel.add(new JLabel(trans.get("LaunchLugCfg.lbl.Thickness")));
panel.add(new UnitSelector(m), "growx");
panel.add(new BasicSlider(m.getSliderModel(0, 0.01)), "w 100lp, wrap 20lp");
panel.add(new UnitSelector(m), "growx");
panel.add(new BasicSlider(m.getSliderModel(0, 0.01)), "w 100lp, wrap 20lp");
//// Radial position:
panel.add(new JLabel(trans.get("LaunchLugCfg.lbl.Radialpos")));
//// Radial position:
panel.add(new JLabel(trans.get("LaunchLugCfg.lbl.Radialpos")));
- m = new DoubleModel(component, "RadialDirection", UnitGroup.UNITS_ANGLE,
- -Math.PI, Math.PI);
+ m = new DoubleModel(component, "RadialDirection", UnitGroup.UNITS_ANGLE);
spin = new JSpinner(m.getSpinnerModel());
spin.setEditor(new SpinnerEditor(spin));
spin = new JSpinner(m.getSpinnerModel());
spin.setEditor(new SpinnerEditor(spin));
panel.add(new UnitSelector(m), "growx");
panel.add(new BasicSlider(m.getSliderModel(-Math.PI, Math.PI)), "w 100lp, wrap");
panel.add(new UnitSelector(m), "growx");
panel.add(new BasicSlider(m.getSliderModel(-Math.PI, Math.PI)), "w 100lp, wrap");
primary.add(panel, "grow, gapright 20lp");
panel = new JPanel(new MigLayout("gap rel unrel", "[][65lp::][30lp::][]", ""));
primary.add(panel, "grow, gapright 20lp");
panel = new JPanel(new MigLayout("gap rel unrel", "[][65lp::][30lp::][]", ""));
//// Position relative to:
panel.add(new JLabel(trans.get("LaunchLugCfg.lbl.Posrelativeto")));
//// Position relative to:
panel.add(new JLabel(trans.get("LaunchLugCfg.lbl.Posrelativeto")));
RocketComponent.Position.MIDDLE,
RocketComponent.Position.BOTTOM,
RocketComponent.Position.ABSOLUTE
RocketComponent.Position.MIDDLE,
RocketComponent.Position.BOTTOM,
RocketComponent.Position.ABSOLUTE
panel.add(combo, "spanx, growx, wrap");
//// plus
panel.add(combo, "spanx, growx, wrap");
//// plus
new DoubleModel(component.getParent(), "Length"))),
"w 100lp, wrap para");
new DoubleModel(component.getParent(), "Length"))),
"w 100lp, wrap para");
//// Material
materialPanel(panel, Material.Type.BULK);
//// Material
materialPanel(panel, Material.Type.BULK);
primary.add(panel, "grow");
//// General and General properties
primary.add(panel, "grow");
//// General and General properties
public MassComponentConfig(OpenRocketDocument d, RocketComponent component) {
super(d, component);
public MassComponentConfig(OpenRocketDocument d, RocketComponent component) {
super(d, component);
JPanel panel = new JPanel(new MigLayout("gap rel unrel", "[][65lp::][30lp::]", ""));
JPanel panel = new JPanel(new MigLayout("gap rel unrel", "[][65lp::][30lp::]", ""));
//// Mass
panel.add(new JLabel(trans.get("MassComponentCfg.lbl.Mass")));
//// Mass
panel.add(new JLabel(trans.get("MassComponentCfg.lbl.Mass")));
panel.add(new UnitSelector(m), "growx");
panel.add(new BasicSlider(m.getSliderModel(0, 0.05, 0.5)), "w 100lp, wrap");
panel.add(new UnitSelector(m), "growx");
panel.add(new BasicSlider(m.getSliderModel(0, 0.05, 0.5)), "w 100lp, wrap");
//// Mass length
//// Length
panel.add(new JLabel(trans.get("MassComponentCfg.lbl.Length")));
//// Mass length
//// Length
panel.add(new JLabel(trans.get("MassComponentCfg.lbl.Length")));
panel.add(new UnitSelector(m), "growx");
panel.add(new BasicSlider(m.getSliderModel(0, 0.1, 0.5)), "w 100lp, wrap");
panel.add(new UnitSelector(m), "growx");
panel.add(new BasicSlider(m.getSliderModel(0, 0.1, 0.5)), "w 100lp, wrap");
//// Tube diameter
//// Diameter:
panel.add(new JLabel(trans.get("MassComponentCfg.lbl.Diameter")));
//// Tube diameter
//// Diameter:
panel.add(new JLabel(trans.get("MassComponentCfg.lbl.Diameter")));
panel.add(new UnitSelector(od), "growx");
panel.add(new BasicSlider(od.getSliderModel(0, 0.04, 0.2)), "w 100lp, wrap");
panel.add(new UnitSelector(od), "growx");
panel.add(new BasicSlider(od.getSliderModel(0, 0.04, 0.2)), "w 100lp, wrap");
//// Position
//// Position relative to:
panel.add(new JLabel(trans.get("MassComponentCfg.lbl.PosRelativeto")));
//// Position
//// Position relative to:
panel.add(new JLabel(trans.get("MassComponentCfg.lbl.PosRelativeto")));
RocketComponent.Position.MIDDLE,
RocketComponent.Position.BOTTOM,
RocketComponent.Position.ABSOLUTE
RocketComponent.Position.MIDDLE,
RocketComponent.Position.BOTTOM,
RocketComponent.Position.ABSOLUTE
panel.add(combo, "spanx, growx, wrap");
//// plus
panel.add(new JLabel(trans.get("MassComponentCfg.lbl.plus")), "right");
panel.add(combo, "spanx, growx, wrap");
//// plus
panel.add(new JLabel(trans.get("MassComponentCfg.lbl.plus")), "right");
panel.add(new UnitSelector(m), "growx");
panel.add(new BasicSlider(m.getSliderModel(0, 0.1, 1.0)), "w 100lp, wrap");
panel.add(new UnitSelector(m), "growx");
panel.add(new BasicSlider(m.getSliderModel(0, 0.1, 1.0)), "w 100lp, wrap");
//// Radial direction:
panel.add(new JLabel(trans.get("MassComponentCfg.lbl.Radialdirection")));
//// Radial direction:
panel.add(new JLabel(trans.get("MassComponentCfg.lbl.Radialdirection")));
- m = new DoubleModel(component, "RadialDirection", UnitGroup.UNITS_ANGLE, 0);
+ m = new DoubleModel(component, "RadialDirection", UnitGroup.UNITS_ANGLE);
spin = new JSpinner(m.getSpinnerModel());
spin.setEditor(new SpinnerEditor(spin));
spin = new JSpinner(m.getSpinnerModel());
spin.setEditor(new SpinnerEditor(spin));
panel.add(new UnitSelector(m), "growx");
panel.add(new BasicSlider(m.getSliderModel(-Math.PI, Math.PI)), "w 100lp, wrap");
panel.add(new UnitSelector(m), "growx");
panel.add(new BasicSlider(m.getSliderModel(-Math.PI, Math.PI)), "w 100lp, wrap");
//// Reset button
JButton button = new JButton(trans.get("MassComponentCfg.but.Reset"));
button.addActionListener(new ActionListener() {
//// Reset button
JButton button = new JButton(trans.get("MassComponentCfg.but.Reset"));
button.addActionListener(new ActionListener() {
//// Radial direction:
panel.add(new JLabel(trans.get("ParachuteCfg.lbl.Radialdirection")));
//// Radial direction:
panel.add(new JLabel(trans.get("ParachuteCfg.lbl.Radialdirection")));
- m = new DoubleModel(component, "RadialDirection", UnitGroup.UNITS_ANGLE, 0);
+ m = new DoubleModel(component, "RadialDirection", UnitGroup.UNITS_ANGLE);
spin = new JSpinner(m.getSpinnerModel());
spin.setEditor(new SpinnerEditor(spin));
spin = new JSpinner(m.getSpinnerModel());
spin.setEditor(new SpinnerEditor(spin));
JSpinner spin;
DoubleModel od = null;
JSpinner spin;
DoubleModel od = null;
//// Outer diameter
if (outer != null) {
panel.add(new JLabel(outer));
//// Outer diameter
if (outer != null) {
panel.add(new JLabel(outer));
//// Inner diameter
if (inner != null) {
panel.add(new JLabel(inner));
//// Inner diameter
if (inner != null) {
panel.add(new JLabel(inner));
//// Wall thickness
if (thickness != null) {
panel.add(new JLabel(thickness));
//// Wall thickness
if (thickness != null) {
panel.add(new JLabel(thickness));
panel.add(new BasicSlider(m.getSliderModel(0, 0.01)), "w 100lp, wrap");
}
panel.add(new BasicSlider(m.getSliderModel(0, 0.01)), "w 100lp, wrap");
}
//// Inner tube length
if (length != null) {
panel.add(new JLabel(length));
//// Inner tube length
if (length != null) {
panel.add(new JLabel(length));
panel.add(new BasicSlider(m.getSliderModel(0, 0.1, 1.0)), "w 100lp, wrap");
}
panel.add(new BasicSlider(m.getSliderModel(0, 0.1, 1.0)), "w 100lp, wrap");
}
//// Position
//// Position relative to:
//// Position
//// Position relative to:
RocketComponent.Position.MIDDLE,
RocketComponent.Position.BOTTOM,
RocketComponent.Position.ABSOLUTE
RocketComponent.Position.MIDDLE,
RocketComponent.Position.BOTTOM,
RocketComponent.Position.ABSOLUTE
panel.add(combo, "spanx 3, growx, wrap");
//// plus
panel.add(combo, "spanx 3, growx, wrap");
//// plus
new DoubleModel(component.getParent(), "Length"))),
"w 100lp, wrap");
new DoubleModel(component.getParent(), "Length"))),
"w 100lp, wrap");
//// Material
JPanel sub = materialPanel(new JPanel(new MigLayout()), Material.Type.BULK);
//// Material
JPanel sub = materialPanel(new JPanel(new MigLayout()), Material.Type.BULK);
bs.setToolTipText(trans.get("ringcompcfg.Distancefrom"));
panel.add(bs, "w 100lp, wrap");
bs.setToolTipText(trans.get("ringcompcfg.Distancefrom"));
panel.add(bs, "w 100lp, wrap");
//// Radial direction
l = new JLabel(trans.get("ringcompcfg.Radialdirection"));
//// The radial direction from the rocket centerline
l.setToolTipText(trans.get("ringcompcfg.radialdirectionfrom"));
panel.add(l);
//// Radial direction
l = new JLabel(trans.get("ringcompcfg.Radialdirection"));
//// The radial direction from the rocket centerline
l.setToolTipText(trans.get("ringcompcfg.radialdirectionfrom"));
panel.add(l);
- m = new DoubleModel(component, "RadialDirection", UnitGroup.UNITS_ANGLE, 0);
+ m = new DoubleModel(component, "RadialDirection", UnitGroup.UNITS_ANGLE);
spin = new JSpinner(m.getSpinnerModel());
spin.setEditor(new SpinnerEditor(spin));
spin = new JSpinner(m.getSpinnerModel());
spin.setEditor(new SpinnerEditor(spin));
bs.setToolTipText(trans.get("ringcompcfg.radialdirectionfrom"));
panel.add(bs, "w 100lp, wrap");
bs.setToolTipText(trans.get("ringcompcfg.radialdirectionfrom"));
panel.add(bs, "w 100lp, wrap");
//// Reset button
JButton button = new JButton(trans.get("ringcompcfg.but.Reset"));
//// Reset the component to the rocket centerline
//// Reset button
JButton button = new JButton(trans.get("ringcompcfg.but.Reset"));
//// Reset the component to the rocket centerline
});
panel.add(button, "spanx, right, wrap para");
});
panel.add(button, "spanx, right, wrap para");
DescriptionArea note = new DescriptionArea(3);
//// Note: An inner tube will not affect the aerodynamics of the rocket even if it is located outside of the body tube.
note.setText(trans.get("ringcompcfg.note.desc"));
panel.add(note, "spanx, growx");
DescriptionArea note = new DescriptionArea(3);
//// Note: An inner tube will not affect the aerodynamics of the rocket even if it is located outside of the body tube.
note.setText(trans.get("ringcompcfg.note.desc"));
panel.add(note, "spanx, growx");
JPanel panel = new JPanel(new MigLayout("gap rel unrel", "[][65lp::][30lp::][]", ""));
JPanel panel = new JPanel(new MigLayout("gap rel unrel", "[][65lp::][30lp::][]", ""));
//// Strip length:
panel.add(new JLabel(trans.get("StreamerCfg.lbl.Striplength")));
//// Strip length:
panel.add(new JLabel(trans.get("StreamerCfg.lbl.Striplength")));
panel.add(new UnitSelector(m), "growx");
panel.add(new BasicSlider(m.getSliderModel(0, 0.2)), "w 100lp, wrap 20lp");
panel.add(new UnitSelector(m), "growx");
panel.add(new BasicSlider(m.getSliderModel(0, 0.2)), "w 100lp, wrap 20lp");
//// Strip area:
panel.add(new JLabel(trans.get("StreamerCfg.lbl.Striparea")));
//// Strip area:
panel.add(new JLabel(trans.get("StreamerCfg.lbl.Striparea")));
// panel.add(new UnitSelector(m),"growx");
panel.add(new BasicSlider(m.getSliderModel(2, 15)), "skip, w 100lp, wrap 20lp");
// panel.add(new UnitSelector(m),"growx");
panel.add(new BasicSlider(m.getSliderModel(2, 15)), "skip, w 100lp, wrap 20lp");
//// Material:
panel.add(new JLabel(trans.get("StreamerCfg.lbl.Material")));
//// Material:
panel.add(new JLabel(trans.get("StreamerCfg.lbl.Material")));
combo.setToolTipText(trans.get("StreamerCfg.combo.ttip.MaterialModel"));
panel.add(combo, "spanx 3, growx, wrap 20lp");
combo.setToolTipText(trans.get("StreamerCfg.combo.ttip.MaterialModel"));
panel.add(combo, "spanx 3, growx, wrap 20lp");
// CD
//// <html>Drag coefficient C<sub>D</sub>:
JLabel label = new HtmlLabel(trans.get("StreamerCfg.lbl.longA1"));
// CD
//// <html>Drag coefficient C<sub>D</sub>:
JLabel label = new HtmlLabel(trans.get("StreamerCfg.lbl.longA1"));
panel.add(new StyledLabel(trans.get("StreamerCfg.lbl.longC1"),
-2), "span, wrap");
panel.add(new StyledLabel(trans.get("StreamerCfg.lbl.longC1"),
-2), "span, wrap");
primary.add(panel, "grow, gapright 20lp");
panel = new JPanel(new MigLayout("gap rel unrel", "[][65lp::][30lp::][]", ""));
primary.add(panel, "grow, gapright 20lp");
panel = new JPanel(new MigLayout("gap rel unrel", "[][65lp::][30lp::][]", ""));
//// Position
//// Position relative to:
panel.add(new JLabel(trans.get("StreamerCfg.lbl.Posrelativeto")));
//// Position
//// Position relative to:
panel.add(new JLabel(trans.get("StreamerCfg.lbl.Posrelativeto")));
RocketComponent.Position.MIDDLE,
RocketComponent.Position.BOTTOM,
RocketComponent.Position.ABSOLUTE
RocketComponent.Position.MIDDLE,
RocketComponent.Position.BOTTOM,
RocketComponent.Position.ABSOLUTE
panel.add(combo, "spanx, growx, wrap");
//// plus
panel.add(combo, "spanx, growx, wrap");
//// plus
new DoubleModel(component.getParent(), "Length"))),
"w 100lp, wrap");
new DoubleModel(component.getParent(), "Length"))),
"w 100lp, wrap");
//// Spatial length:
panel.add(new JLabel(trans.get("StreamerCfg.lbl.Packedlength")));
//// Spatial length:
panel.add(new JLabel(trans.get("StreamerCfg.lbl.Packedlength")));
panel.add(new UnitSelector(m), "growx");
panel.add(new BasicSlider(m.getSliderModel(0, 0.1, 0.5)), "w 100lp, wrap");
panel.add(new UnitSelector(m), "growx");
panel.add(new BasicSlider(m.getSliderModel(0, 0.1, 0.5)), "w 100lp, wrap");
//// Tube diameter
//// Packed diameter:
panel.add(new JLabel(trans.get("StreamerCfg.lbl.Packeddiam")));
//// Tube diameter
//// Packed diameter:
panel.add(new JLabel(trans.get("StreamerCfg.lbl.Packeddiam")));
panel.add(new UnitSelector(od), "growx");
panel.add(new BasicSlider(od.getSliderModel(0, 0.04, 0.2)), "w 100lp, wrap 30lp");
panel.add(new UnitSelector(od), "growx");
panel.add(new BasicSlider(od.getSliderModel(0, 0.04, 0.2)), "w 100lp, wrap 30lp");
//// Deployment
//// Deploys at:
panel.add(new JLabel(trans.get("StreamerCfg.lbl.Deploysat")), "");
//// Deployment
//// Deploys at:
panel.add(new JLabel(trans.get("StreamerCfg.lbl.Deploysat")), "");
altitudeComponents.add(slider);
panel.add(slider, "w 100lp, wrap");
altitudeComponents.add(slider);
panel.add(slider, "w 100lp, wrap");
primary.add(panel, "grow");
updateFields();
primary.add(panel, "grow");
updateFields();
protected JPanel positionTab() {
JPanel panel = new JPanel(new MigLayout("gap rel unrel", "[][65lp::][30lp::]", ""));
protected JPanel positionTab() {
JPanel panel = new JPanel(new MigLayout("gap rel unrel", "[][65lp::][30lp::]", ""));
panel.add(new UnitSelector(m), "growx");
panel.add(new BasicSlider(m.getSliderModel(0, 0.1, 1.0)), "w 100lp, wrap");
panel.add(new UnitSelector(m), "growx");
panel.add(new BasicSlider(m.getSliderModel(0, 0.1, 1.0)), "w 100lp, wrap");
//// Radial direction
//// Radial direction:
panel.add(new JLabel(trans.get("StreamerCfg.lbl.Radialdirection")));
//// Radial direction
//// Radial direction:
panel.add(new JLabel(trans.get("StreamerCfg.lbl.Radialdirection")));
- m = new DoubleModel(component, "RadialDirection", UnitGroup.UNITS_ANGLE, 0);
+ m = new DoubleModel(component, "RadialDirection", UnitGroup.UNITS_ANGLE);
spin = new JSpinner(m.getSpinnerModel());
spin.setEditor(new SpinnerEditor(spin));
spin = new JSpinner(m.getSpinnerModel());
spin.setEditor(new SpinnerEditor(spin));
panel.add(new UnitSelector(m), "growx");
panel.add(new BasicSlider(m.getSliderModel(-Math.PI, Math.PI)), "w 100lp, wrap");
panel.add(new UnitSelector(m), "growx");
panel.add(new BasicSlider(m.getSliderModel(-Math.PI, Math.PI)), "w 100lp, wrap");
//// Reset button
JButton button = new JButton(trans.get("StreamerCfg.but.Reset"));
button.addActionListener(new ActionListener() {
//// Reset button
JButton button = new JButton(trans.get("StreamerCfg.but.Reset"));
button.addActionListener(new ActionListener() {
JPanel mainPanel = new JPanel(new MigLayout());
JPanel mainPanel = new JPanel(new MigLayout());
JPanel panel = new JPanel(new MigLayout("gap rel unrel", "[][65lp::][30lp::]", ""));
//// Number of fins:
JPanel panel = new JPanel(new MigLayout("gap rel unrel", "[][65lp::][30lp::]", ""));
//// Number of fins:
spin.setToolTipText(trans.get("TrapezoidFinSetCfg.lbl.ttip.Nbroffins"));
panel.add(spin, "growx, wrap");
spin.setToolTipText(trans.get("TrapezoidFinSetCfg.lbl.ttip.Nbroffins"));
panel.add(spin, "growx, wrap");
//// Base rotation
//// Fin rotation:
label = new JLabel(trans.get("TrapezoidFinSetCfg.lbl.Finrotation"));
//// Base rotation
//// Fin rotation:
label = new JLabel(trans.get("TrapezoidFinSetCfg.lbl.Finrotation"));
label.setToolTipText(trans.get("TrapezoidFinSetCfg.lbl.ttip.Finrotation"));
panel.add(label);
label.setToolTipText(trans.get("TrapezoidFinSetCfg.lbl.ttip.Finrotation"));
panel.add(label);
- m = new DoubleModel(component, "BaseRotation", UnitGroup.UNITS_ANGLE, -Math.PI, Math.PI);
+ m = new DoubleModel(component, "BaseRotation", UnitGroup.UNITS_ANGLE);
spin = new JSpinner(m.getSpinnerModel());
spin.setEditor(new SpinnerEditor(spin));
spin = new JSpinner(m.getSpinnerModel());
spin.setEditor(new SpinnerEditor(spin));
panel.add(new UnitSelector(m), "growx");
panel.add(new BasicSlider(m.getSliderModel(-Math.PI, Math.PI)), "w 100lp, wrap");
panel.add(new UnitSelector(m), "growx");
panel.add(new BasicSlider(m.getSliderModel(-Math.PI, Math.PI)), "w 100lp, wrap");
//// Fin cant:
label = new JLabel(trans.get("TrapezoidFinSetCfg.lbl.Fincant"));
//// The angle that the fins are canted with respect to the rocket
//// Fin cant:
label = new JLabel(trans.get("TrapezoidFinSetCfg.lbl.Fincant"));
//// The angle that the fins are canted with respect to the rocket
panel.add(new BasicSlider(m.getSliderModel(-FinSet.MAX_CANT, FinSet.MAX_CANT)),
"w 100lp, wrap");
panel.add(new BasicSlider(m.getSliderModel(-FinSet.MAX_CANT, FinSet.MAX_CANT)),
"w 100lp, wrap");
//// Root chord:
panel.add(new JLabel(trans.get("TrapezoidFinSetCfg.lbl.Rootchord")));
//// Root chord:
panel.add(new JLabel(trans.get("TrapezoidFinSetCfg.lbl.Rootchord")));
panel.add(new UnitSelector(m), "growx");
panel.add(new BasicSlider(m.getSliderModel(0, 0.05, 0.2)), "w 100lp, wrap");
panel.add(new UnitSelector(m), "growx");
panel.add(new BasicSlider(m.getSliderModel(0, 0.05, 0.2)), "w 100lp, wrap");
//// Tip chord:
panel.add(new JLabel(trans.get("TrapezoidFinSetCfg.lbl.Tipchord")));
//// Tip chord:
panel.add(new JLabel(trans.get("TrapezoidFinSetCfg.lbl.Tipchord")));
panel.add(new UnitSelector(m), "growx");
panel.add(new BasicSlider(m.getSliderModel(0, 0.05, 0.2)), "w 100lp, wrap");
panel.add(new UnitSelector(m), "growx");
panel.add(new BasicSlider(m.getSliderModel(0, 0.05, 0.2)), "w 100lp, wrap");
//// Height:
panel.add(new JLabel(trans.get("TrapezoidFinSetCfg.lbl.Height")));
//// Height:
panel.add(new JLabel(trans.get("TrapezoidFinSetCfg.lbl.Height")));
panel.add(new UnitSelector(m), "growx");
panel.add(new BasicSlider(m.getSliderModel(0, 0.05, 0.2)), "w 100lp, wrap");
panel.add(new UnitSelector(m), "growx");
panel.add(new BasicSlider(m.getSliderModel(0, 0.05, 0.2)), "w 100lp, wrap");
//// Sweep length:
panel.add(new JLabel(trans.get("TrapezoidFinSetCfg.lbl.Sweeplength")));
//// Sweep length:
panel.add(new JLabel(trans.get("TrapezoidFinSetCfg.lbl.Sweeplength")));
DoubleModel rc = new DoubleModel(component, "RootChord", 1.1, UnitGroup.UNITS_LENGTH);
panel.add(new BasicSlider(m.getSliderModel(tc, rc)), "w 100lp, wrap");
DoubleModel rc = new DoubleModel(component, "RootChord", 1.1, UnitGroup.UNITS_LENGTH);
panel.add(new BasicSlider(m.getSliderModel(tc, rc)), "w 100lp, wrap");
//// Sweep angle:
panel.add(new JLabel(trans.get("TrapezoidFinSetCfg.lbl.Sweepangle")));
//// Sweep angle:
panel.add(new JLabel(trans.get("TrapezoidFinSetCfg.lbl.Sweepangle")));
panel.add(new BasicSlider(m.getSliderModel(-Math.PI / 4, Math.PI / 4)),
"w 100lp, wrap paragraph");
panel.add(new BasicSlider(m.getSliderModel(-Math.PI / 4, Math.PI / 4)),
"w 100lp, wrap paragraph");
mainPanel.add(panel, "aligny 20%");
mainPanel.add(new JSeparator(SwingConstants.VERTICAL), "growy");
mainPanel.add(panel, "aligny 20%");
mainPanel.add(new JSeparator(SwingConstants.VERTICAL), "growy");
panel = new JPanel(new MigLayout("gap rel unrel", "[][65lp::][30lp::]", ""));
panel = new JPanel(new MigLayout("gap rel unrel", "[][65lp::][30lp::]", ""));
//// Fin cross section:
panel.add(new JLabel(trans.get("TrapezoidFinSetCfg.lbl.FincrossSection")));
combo = new JComboBox(
new EnumModel<FinSet.CrossSection>(component, "CrossSection"));
panel.add(combo, "span, growx, wrap");
//// Fin cross section:
panel.add(new JLabel(trans.get("TrapezoidFinSetCfg.lbl.FincrossSection")));
combo = new JComboBox(
new EnumModel<FinSet.CrossSection>(component, "CrossSection"));
panel.add(combo, "span, growx, wrap");
//// Thickness:
panel.add(new JLabel(trans.get("TrapezoidFinSetCfg.lbl.Thickness")));
//// Thickness:
panel.add(new JLabel(trans.get("TrapezoidFinSetCfg.lbl.Thickness")));
panel.add(new UnitSelector(m), "growx");
panel.add(new BasicSlider(m.getSliderModel(0, 0.01)), "w 100lp, wrap para");
panel.add(new UnitSelector(m), "growx");
panel.add(new BasicSlider(m.getSliderModel(0, 0.01)), "w 100lp, wrap para");
//// Position
//// Position relative to:
panel.add(new JLabel(trans.get("TrapezoidFinSetCfg.lbl.Posrelativeto")));
//// Position
//// Position relative to:
panel.add(new JLabel(trans.get("TrapezoidFinSetCfg.lbl.Posrelativeto")));
RocketComponent.Position.MIDDLE,
RocketComponent.Position.BOTTOM,
RocketComponent.Position.ABSOLUTE
RocketComponent.Position.MIDDLE,
RocketComponent.Position.BOTTOM,
RocketComponent.Position.ABSOLUTE
panel.add(combo, "spanx, growx, wrap");
//// plus
panel.add(new JLabel(trans.get("TrapezoidFinSetCfg.lbl.plus")), "right");
panel.add(combo, "spanx, growx, wrap");
//// plus
panel.add(new JLabel(trans.get("TrapezoidFinSetCfg.lbl.plus")), "right");
new DoubleModel(component.getParent(), "Length"))),
"w 100lp, wrap para");
new DoubleModel(component.getParent(), "Length"))),
"w 100lp, wrap para");
//// Material
materialPanel(panel, Material.Type.BULK);
//// Material
materialPanel(panel, Material.Type.BULK);
mainPanel.add(panel, "aligny 20%");
//// General and General properties
mainPanel.add(panel, "aligny 20%");
//// General and General properties