Add traversal policy for elliptical fin set config
This commit is contained in:
parent
8954ca7a7d
commit
cfe16020a4
@ -15,6 +15,7 @@ import javax.swing.SwingConstants;
|
||||
import net.miginfocom.swing.MigLayout;
|
||||
import net.sf.openrocket.document.OpenRocketDocument;
|
||||
import net.sf.openrocket.gui.SpinnerEditor;
|
||||
import net.sf.openrocket.gui.adaptors.CustomFocusTraversalPolicy;
|
||||
import net.sf.openrocket.gui.adaptors.DoubleModel;
|
||||
import net.sf.openrocket.gui.adaptors.EnumModel;
|
||||
import net.sf.openrocket.gui.adaptors.IntegerModel;
|
||||
@ -51,6 +52,7 @@ public class EllipticalFinSetConfig extends FinSetConfig {
|
||||
spin = new JSpinner(im.getSpinnerModel());
|
||||
spin.setEditor(new SpinnerEditor(spin));
|
||||
panel.add(spin, "growx, wrap");
|
||||
order.add(((SpinnerEditor) spin.getEditor()).getTextField());
|
||||
|
||||
|
||||
//// Base rotation
|
||||
@ -61,6 +63,7 @@ public class EllipticalFinSetConfig extends FinSetConfig {
|
||||
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");
|
||||
@ -78,6 +81,7 @@ public class EllipticalFinSetConfig extends FinSetConfig {
|
||||
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(-FinSet.MAX_CANT_RADIANS, FinSet.MAX_CANT_RADIANS)),
|
||||
@ -93,6 +97,7 @@ public class EllipticalFinSetConfig extends FinSetConfig {
|
||||
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.05, 0.2)), "w 100lp, wrap");
|
||||
@ -106,6 +111,7 @@ public class EllipticalFinSetConfig extends FinSetConfig {
|
||||
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.05, 0.2)), "w 100lp, wrap");
|
||||
@ -118,6 +124,7 @@ public class EllipticalFinSetConfig extends FinSetConfig {
|
||||
final EnumModel<AxialMethod> axialMethodModel = new EnumModel<AxialMethod>(component, "AxialMethod", AxialMethod.axialOffsetMethods );
|
||||
final JComboBox<AxialMethod> axialMethodCombo = new JComboBox<AxialMethod>( axialMethodModel );
|
||||
panel.add(axialMethodCombo, "spanx, growx, wrap");
|
||||
order.add(axialMethodCombo);
|
||||
|
||||
//// plus
|
||||
panel.add(new JLabel(trans.get("EllipticalFinSetCfg.plus")), "right");
|
||||
@ -126,6 +133,7 @@ public class EllipticalFinSetConfig extends FinSetConfig {
|
||||
spin = new JSpinner(axialOffsetModel.getSpinnerModel());
|
||||
spin.setEditor(new SpinnerEditor(spin));
|
||||
panel.add(spin, "growx");
|
||||
order.add(((SpinnerEditor) spin.getEditor()).getTextField());
|
||||
|
||||
axialMethodCombo.addActionListener(new ActionListener() {
|
||||
@Override
|
||||
@ -157,7 +165,7 @@ public class EllipticalFinSetConfig extends FinSetConfig {
|
||||
JComboBox<FinSet.CrossSection> sectionCombo = new JComboBox<FinSet.CrossSection>(
|
||||
new EnumModel<FinSet.CrossSection>(component, "CrossSection"));
|
||||
panel.add( sectionCombo, "growx, wrap unrel");
|
||||
|
||||
order.add(sectionCombo);
|
||||
|
||||
//// Thickness:
|
||||
panel.add(new JLabel(trans.get("EllipticalFinSetCfg.Thickness")));
|
||||
@ -167,6 +175,7 @@ public class EllipticalFinSetConfig extends FinSetConfig {
|
||||
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.01)), "w 100lp, wrap 30lp");
|
||||
@ -176,7 +185,11 @@ public class EllipticalFinSetConfig extends FinSetConfig {
|
||||
//// Material
|
||||
MaterialPanel materialPanel = new MaterialPanel(component, document, Material.Type.BULK);
|
||||
panel.add(materialPanel, "span, wrap");
|
||||
|
||||
order.add(materialPanel.getMaterialCombo());
|
||||
if (materialPanel.getFinishCombo() != null) {
|
||||
order.add(materialPanel.getFinishCombo());
|
||||
}
|
||||
|
||||
panel.add(filletMaterialPanel(), "span, wrap");
|
||||
|
||||
|
||||
@ -190,6 +203,10 @@ public class EllipticalFinSetConfig extends FinSetConfig {
|
||||
tabbedPane.insertTab(trans.get("EllipticalFinSetCfg.General"), null, mainPanel,
|
||||
trans.get("EllipticalFinSetCfg.Generalproperties"), 0);
|
||||
tabbedPane.setSelectedIndex(0);
|
||||
|
||||
// Apply the custom focus travel policy to this config dialog
|
||||
CustomFocusTraversalPolicy policy = new CustomFocusTraversalPolicy(order);
|
||||
parent.setFocusTraversalPolicy(policy);
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -20,6 +20,7 @@ import javax.swing.SwingUtilities;
|
||||
import net.miginfocom.swing.MigLayout;
|
||||
import net.sf.openrocket.document.OpenRocketDocument;
|
||||
import net.sf.openrocket.gui.SpinnerEditor;
|
||||
import net.sf.openrocket.gui.adaptors.CustomFocusTraversalPolicy;
|
||||
import net.sf.openrocket.gui.adaptors.DoubleModel;
|
||||
import net.sf.openrocket.gui.adaptors.EnumModel;
|
||||
import net.sf.openrocket.gui.adaptors.MaterialModel;
|
||||
@ -134,11 +135,15 @@ public abstract class FinSetConfig extends RocketComponentConfig {
|
||||
});
|
||||
split.setEnabled(((FinSet) component).getFinCount() > 1);
|
||||
|
||||
if (convert == null)
|
||||
if (convert == null) {
|
||||
addButtons(split);
|
||||
else
|
||||
order.add(split);
|
||||
}
|
||||
else {
|
||||
addButtons(split, convert);
|
||||
|
||||
order.add(split);
|
||||
order.add(convert);
|
||||
}
|
||||
}
|
||||
|
||||
private JPanel finTabPanel() {
|
||||
@ -175,10 +180,11 @@ public abstract class FinSetConfig extends RocketComponentConfig {
|
||||
panel.add(label, "gapleft para, gapright 40lp, growx 1");
|
||||
|
||||
final DoubleModel mtl = new DoubleModel(component, "TabLength", UnitGroup.UNITS_LENGTH, 0);
|
||||
|
||||
|
||||
spin = new JSpinner(mtl.getSpinnerModel());
|
||||
spin.setEditor(new SpinnerEditor(spin));
|
||||
panel.add(spin, "growx 1");
|
||||
order.add(((SpinnerEditor) spin.getEditor()).getTextField());
|
||||
|
||||
panel.add(new UnitSelector(mtl), "growx 1");
|
||||
panel.add(new BasicSlider(mtl.getSliderModel(DoubleModel.ZERO, length)),
|
||||
@ -196,6 +202,7 @@ public abstract class FinSetConfig extends RocketComponentConfig {
|
||||
spin = new JSpinner(tabHeightModel.getSpinnerModel());
|
||||
spin.setEditor(new SpinnerEditor(spin));
|
||||
panel.add(spin, "growx");
|
||||
order.add(((SpinnerEditor) spin.getEditor()).getTextField());
|
||||
|
||||
panel.add(new UnitSelector(tabHeightModel), "growx");
|
||||
panel.add(new BasicSlider(tabHeightModel.getSliderModel(DoubleModel.ZERO, length2)),
|
||||
@ -212,6 +219,7 @@ public abstract class FinSetConfig extends RocketComponentConfig {
|
||||
spin = new JSpinner(mts.getSpinnerModel());
|
||||
spin.setEditor(new SpinnerEditor(spin));
|
||||
panel.add(spin, "growx");
|
||||
order.add(((SpinnerEditor) spin.getEditor()).getTextField());
|
||||
|
||||
panel.add(new UnitSelector(mts), "growx");
|
||||
panel.add(new BasicSlider(mts.getSliderModel(length_2, length2)), "w 100lp, growx 5, wrap");
|
||||
@ -226,6 +234,7 @@ public abstract class FinSetConfig extends RocketComponentConfig {
|
||||
JComboBox<AxialMethod> enumCombo = new JComboBox<>(em);
|
||||
|
||||
panel.add( enumCombo, "spanx 3, growx, wrap para");
|
||||
order.add(enumCombo);
|
||||
|
||||
// Calculate fin tab height, length, and position
|
||||
autoCalc = new SelectColorButton(trans.get("FinSetConfig.but.AutoCalc"));
|
||||
@ -284,7 +293,12 @@ public abstract class FinSetConfig extends RocketComponentConfig {
|
||||
}
|
||||
});
|
||||
panel.add(autoCalc, "skip 1, spanx");
|
||||
|
||||
order.add(autoCalc);
|
||||
|
||||
// Apply the custom focus travel policy to this panel
|
||||
CustomFocusTraversalPolicy policy = new CustomFocusTraversalPolicy(order);
|
||||
parent.setFocusTraversalPolicy(policy);
|
||||
|
||||
return panel;
|
||||
}
|
||||
|
||||
@ -499,6 +513,8 @@ public abstract class FinSetConfig extends RocketComponentConfig {
|
||||
trans.get("FinsetCfg.ttip.Finfillets2") +
|
||||
trans.get("FinsetCfg.ttip.Finfillets3");
|
||||
filletPanel.setBorder(BorderFactory.createTitledBorder("Root Fillets"));
|
||||
|
||||
// Fillet Radius:
|
||||
filletPanel.add(new JLabel(trans.get("FinSetCfg.lbl.Filletradius")));
|
||||
|
||||
DoubleModel m = new DoubleModel(component, "FilletRadius", UnitGroup.UNITS_LENGTH, 0);
|
||||
@ -507,13 +523,15 @@ public abstract class FinSetConfig extends RocketComponentConfig {
|
||||
spin.setEditor(new SpinnerEditor(spin));
|
||||
spin.setToolTipText(tip);
|
||||
filletPanel.add(spin, "growx, w 40");
|
||||
order.add(((SpinnerEditor) spin.getEditor()).getTextField());
|
||||
UnitSelector us = new UnitSelector(m);
|
||||
filletPanel.add(us, "growx");
|
||||
us.setToolTipText(tip);
|
||||
BasicSlider bs =new BasicSlider(m.getSliderModel(0, 10));
|
||||
filletPanel.add(bs, "w 100lp, wrap para");
|
||||
bs.setToolTipText(tip);
|
||||
|
||||
|
||||
// Fillet Material:
|
||||
JLabel label = new JLabel(trans.get("FinSetCfg.lbl.Finfilletmaterial"));
|
||||
label.setToolTipText(tip);
|
||||
//// The component material affects the weight of the component.
|
||||
@ -525,7 +543,13 @@ public abstract class FinSetConfig extends RocketComponentConfig {
|
||||
//// The component material affects the weight of the component.
|
||||
materialCombo.setToolTipText(trans.get("RocketCompCfg.combo.ttip.componentmaterialaffects"));
|
||||
filletPanel.add( materialCombo, "spanx 4, growx, wrap paragraph");
|
||||
order.add(materialCombo);
|
||||
filletPanel.setToolTipText(tip);
|
||||
|
||||
// Apply the custom focus travel policy to this panel
|
||||
CustomFocusTraversalPolicy policy = new CustomFocusTraversalPolicy(order);
|
||||
parent.setFocusTraversalPolicy(policy);
|
||||
|
||||
return filletPanel;
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user