1 package net.sf.openrocket.gui.configdialog;
3 import javax.swing.JComboBox;
4 import javax.swing.JLabel;
5 import javax.swing.JPanel;
6 import javax.swing.JSpinner;
8 import net.miginfocom.swing.MigLayout;
9 import net.sf.openrocket.document.OpenRocketDocument;
10 import net.sf.openrocket.gui.SpinnerEditor;
11 import net.sf.openrocket.gui.adaptors.DoubleModel;
12 import net.sf.openrocket.gui.adaptors.EnumModel;
13 import net.sf.openrocket.gui.components.StyledLabel;
14 import net.sf.openrocket.gui.components.StyledLabel.Style;
15 import net.sf.openrocket.l10n.Translator;
16 import net.sf.openrocket.rocketcomponent.RocketComponent;
17 import net.sf.openrocket.rocketcomponent.Stage;
18 import net.sf.openrocket.rocketcomponent.Stage.SeparationEvent;
19 import net.sf.openrocket.startup.Application;
21 public class StageConfig extends RocketComponentConfig {
22 private static final Translator trans = Application.getTranslator();
24 public StageConfig(OpenRocketDocument document, RocketComponent component) {
25 super(document, component);
27 // Stage separation config (for non-first stage)
28 if (component.getStageNumber() > 0) {
29 JPanel tab = separationTab((Stage) component);
30 tabbedPane.insertTab(trans.get("tab.Separation"), null, tab,
31 trans.get("tab.Separation.ttip"), 1);
37 private JPanel separationTab(Stage stage) {
38 JPanel panel = new JPanel(new MigLayout("fill"));
40 // Select separation event
41 panel.add(new StyledLabel(trans.get("separation.lbl.title"), Style.BOLD), "spanx, wrap rel");
43 JComboBox combo = new JComboBox(new EnumModel<SeparationEvent>(stage, "SeparationEvent"));
47 panel.add(new JLabel(trans.get("separation.lbl.plus")), "");
49 DoubleModel dm = new DoubleModel(stage, "SeparationDelay", 0);
50 JSpinner spin = new JSpinner(dm.getSpinnerModel());
51 spin.setEditor(new SpinnerEditor(spin));
55 panel.add(new JLabel(trans.get("separation.lbl.seconds")), "wrap unrel");