Add traversal policy for parachute config

This commit is contained in:
Remington Holder 2022-08-15 15:09:19 -04:00
parent cda6fc7b7a
commit 430b448db3

View File

@ -16,10 +16,7 @@ import javax.swing.JSpinner;
import net.miginfocom.swing.MigLayout;
import net.sf.openrocket.document.OpenRocketDocument;
import net.sf.openrocket.gui.SpinnerEditor;
import net.sf.openrocket.gui.adaptors.DoubleModel;
import net.sf.openrocket.gui.adaptors.EnumModel;
import net.sf.openrocket.gui.adaptors.IntegerModel;
import net.sf.openrocket.gui.adaptors.MaterialModel;
import net.sf.openrocket.gui.adaptors.*;
import net.sf.openrocket.gui.components.BasicSlider;
import net.sf.openrocket.gui.components.HtmlLabel;
import net.sf.openrocket.gui.components.StyledLabel;
@ -60,6 +57,7 @@ public class ParachuteConfig extends RecoveryDeviceConfig {
JSpinner spin = new JSpinner(m.getSpinnerModel());
spin.setEditor(new SpinnerEditor(spin));
panel.add(spin, "growx");
order.add(((SpinnerEditor) spin.getEditor()).getTextField());
panel.add(new UnitSelector(m), "growx");
panel.add(new BasicSlider(m.getSliderModel(0, 0.4, 1.5)), "w 100lp, wrap");
@ -85,7 +83,9 @@ public class ParachuteConfig extends RecoveryDeviceConfig {
Material.Type.SURFACE));
surfaceMaterialCombo.setToolTipText(trans.get("ParachuteCfg.combo.MaterialModel"));
panel.add( surfaceMaterialCombo, "spanx 3, growx, wrap 15lp");
order.add(surfaceMaterialCombo);
// Drag Coefficient:
// CD
JLabel label = new HtmlLabel(trans.get("ParachuteCfg.lbl.longA1"));
String tip = trans.get("ParachuteCfg.lbl.longB1") +
@ -100,7 +100,8 @@ public class ParachuteConfig extends RecoveryDeviceConfig {
spin.setToolTipText(tip);
spin.setEditor(new SpinnerEditor(spin));
panel.add(spin, "growx");
order.add(((SpinnerEditor) spin.getEditor()).getTextField());
//// Reset button
JButton button = new SelectColorButton(trans.get("ParachuteCfg.but.Reset"));
button.addActionListener(new ActionListener() {
@ -111,6 +112,7 @@ public class ParachuteConfig extends RecoveryDeviceConfig {
}
});
panel.add(button, "spanx, wrap 32lp");
order.add(button);
//// Shroud lines
panel.add(new StyledLabel(trans.get("ParachuteCfg.lbl.Shroudlines"), Style.BOLD), "wrap unrel");
@ -122,6 +124,7 @@ public class ParachuteConfig extends RecoveryDeviceConfig {
spin = new JSpinner(im.getSpinnerModel());
spin.setEditor(new SpinnerEditor(spin));
panel.add(spin, "growx, wrap");
order.add(((SpinnerEditor) spin.getEditor()).getTextField());
//// Line length:
panel.add(new JLabel(trans.get("ParachuteCfg.lbl.Linelength")));
@ -131,6 +134,7 @@ public class ParachuteConfig extends RecoveryDeviceConfig {
spin = new JSpinner(m.getSpinnerModel());
spin.setEditor(new SpinnerEditor(spin));
panel.add(spin, "growx");
order.add(((SpinnerEditor) spin.getEditor()).getTextField());
panel.add(new UnitSelector(m), "growx");
panel.add(new BasicSlider(m.getSliderModel(0, 0.4, 1.5)), "w 100lp, wrap");
@ -140,6 +144,7 @@ public class ParachuteConfig extends RecoveryDeviceConfig {
JComboBox<Material> shroudMaterialCombo =
new JComboBox<Material>(new MaterialModel(panel, component, Material.Type.LINE, "LineMaterial"));
panel.add( shroudMaterialCombo, "spanx 3, growx, wrap 15lp");
order.add(shroudMaterialCombo);
// Right side
@ -156,6 +161,7 @@ public class ParachuteConfig extends RecoveryDeviceConfig {
new EnumModel<AxialMethod>(component, "AxialMethod", AxialMethod.axialOffsetMethods );
JComboBox<AxialMethod> positionCombo = new JComboBox<AxialMethod>( methodModel );
panel.add( positionCombo, "spanx, growx, wrap");
order.add(positionCombo);
//// plus
panel.add(new JLabel(trans.get("ParachuteCfg.lbl.plus")), "right");
@ -165,6 +171,7 @@ public class ParachuteConfig extends RecoveryDeviceConfig {
spin.setEditor(new SpinnerEditor(spin));
focusElement = spin;
panel.add(spin, "growx");
order.add(((SpinnerEditor) spin.getEditor()).getTextField());
panel.add(new UnitSelector(m), "growx");
panel.add(new BasicSlider(m.getSliderModel(
@ -181,6 +188,7 @@ public class ParachuteConfig extends RecoveryDeviceConfig {
spin = new JSpinner(m.getSpinnerModel());
spin.setEditor(new SpinnerEditor(spin));
panel.add(spin, "growx");
order.add(((SpinnerEditor) spin.getEditor()).getTextField());
panel.add(new UnitSelector(m), "growx");
panel.add(new BasicSlider(m.getSliderModel(0, 0.1, 0.5)), "w 100lp, wrap");
@ -196,6 +204,7 @@ public class ParachuteConfig extends RecoveryDeviceConfig {
spin = new JSpinner(od.getSpinnerModel());
spin.setEditor(new SpinnerEditor(spin));
panel.add(spin, "growx");
order.add(((SpinnerEditor) spin.getEditor()).getTextField());
panel.add(new UnitSelector(od), "growx");
panel.add(new BasicSlider(od.getSliderModel(0, 0.04, 0.2)), "w 100lp, wrap");
@ -204,6 +213,7 @@ public class ParachuteConfig extends RecoveryDeviceConfig {
JCheckBox checkAutoPackedRadius = new JCheckBox(od.getAutomaticAction());
checkAutoPackedRadius.setText(trans.get("TransitionCfg.checkbox.Automatic"));
panel.add(checkAutoPackedRadius, "skip, span 2, wrap 5lp");
order.add(checkAutoPackedRadius);
//// Deployment
panel.add(new StyledLabel(trans.get("ParachuteCfg.lbl.Deployment"), Style.BOLD), "wrap unrel");
@ -222,6 +232,7 @@ public class ParachuteConfig extends RecoveryDeviceConfig {
eventCombo.removeItem( DeployEvent.LOWER_STAGE_SEPARATION );
}
panel.add(eventCombo, "spanx 3, growx, wrap");
order.add(eventCombo);
// ... and delay
//// plus
@ -231,6 +242,7 @@ public class ParachuteConfig extends RecoveryDeviceConfig {
spin = new JSpinner(m.getSpinnerModel());
spin.setEditor(new SpinnerEditor(spin, 3));
panel.add(spin, "spanx, split");
order.add(((SpinnerEditor) spin.getEditor()).getTextField());
//// seconds
panel.add(new JLabel(trans.get("ParachuteCfg.lbl.seconds")), "wrap paragraph");
@ -246,6 +258,7 @@ public class ParachuteConfig extends RecoveryDeviceConfig {
spin.setEditor(new SpinnerEditor(spin));
altitudeComponents.add(spin);
panel.add(spin, "growx");
order.add(((SpinnerEditor) spin.getEditor()).getTextField());
UnitSelector unit = new UnitSelector(m);
altitudeComponents.add(unit);
panel.add(unit, "growx");
@ -265,6 +278,11 @@ public class ParachuteConfig extends RecoveryDeviceConfig {
tabbedPane.insertTab(trans.get("ParachuteCfg.tab.Radialpos"), null, positionTab(),
trans.get("ParachuteCfg.tab.ttip.Radialpos"), 1);
tabbedPane.setSelectedIndex(0);
// Apply the custom focus travel policy to this config dialog
CustomFocusTraversalPolicy policy = new CustomFocusTraversalPolicy(order);
parent.setFocusTraversalPolicy(policy);
}
@ -280,6 +298,7 @@ public class ParachuteConfig extends RecoveryDeviceConfig {
JSpinner spin = new JSpinner(m.getSpinnerModel());
spin.setEditor(new SpinnerEditor(spin));
panel.add(spin, "growx");
order.add(((SpinnerEditor) spin.getEditor()).getTextField());
panel.add(new UnitSelector(m), "growx");
panel.add(new BasicSlider(m.getSliderModel(0, 0.1, 1.0)), "w 100lp, wrap");
@ -293,6 +312,7 @@ public class ParachuteConfig extends RecoveryDeviceConfig {
spin = new JSpinner(m.getSpinnerModel());
spin.setEditor(new SpinnerEditor(spin));
panel.add(spin, "growx");
order.add(((SpinnerEditor) spin.getEditor()).getTextField());
panel.add(new UnitSelector(m), "growx");
panel.add(new BasicSlider(m.getSliderModel(-Math.PI, Math.PI)), "w 100lp, wrap");
@ -308,7 +328,12 @@ public class ParachuteConfig extends RecoveryDeviceConfig {
}
});
panel.add(button, "spanx, right");
order.add(button);
// Apply the custom focus travel policy to this panel
CustomFocusTraversalPolicy policy = new CustomFocusTraversalPolicy(order);
parent.setFocusTraversalPolicy(policy);
return panel;
}
}