From 4cfc65fbe2e2f21ba09c086f33fe8a747c1e3ada Mon Sep 17 00:00:00 2001 From: kruland2607 Date: Wed, 5 Jun 2013 15:49:09 -0500 Subject: [PATCH] Make the simulation edit dialog operate a little more friendly. When the Run Simulation button is pressed, the simulations are executed and the edit dialog changes to support plotting (when not in multi-edit mode). The edit dialog will not close in any case. When the user presses close, the dialog is closed. The close button no longer copies the changed simulation conditions to the other selected simulations. --- .../gui/simulation/SimulationEditDialog.java | 307 +++++++++--------- 1 file changed, 159 insertions(+), 148 deletions(-) diff --git a/core/src/net/sf/openrocket/gui/simulation/SimulationEditDialog.java b/core/src/net/sf/openrocket/gui/simulation/SimulationEditDialog.java index 9e16e1a02..0e57dd01c 100644 --- a/core/src/net/sf/openrocket/gui/simulation/SimulationEditDialog.java +++ b/core/src/net/sf/openrocket/gui/simulation/SimulationEditDialog.java @@ -42,6 +42,28 @@ public class SimulationEditDialog extends JDialog { private final static String EDITMODE = "EDIT"; private final static String PLOTMODE = "PLOT"; + public SimulationEditDialog(Window parent, final OpenRocketDocument document, Simulation... sims) { + //// Edit simulation + super(parent, trans.get("simedtdlg.title.Editsim"), JDialog.ModalityType.DOCUMENT_MODAL); + this.document = document; + this.parentWindow = parent; + this.simulation = sims; + this.conditions = simulation[0].getOptions(); + configuration = simulation[0].getConfiguration(); + + this.cards = new JPanel(new CardLayout()); + this.add(cards); + buildEditCard(); + buildPlotCard(); + + this.validate(); + this.pack(); + + this.setLocationByPlatform(true); + + GUIUtil.setDisposableDialogOptions(this, null); + } + private boolean isSingleEdit() { return simulation.length == 1; } @@ -65,138 +87,141 @@ public class SimulationEditDialog extends JDialog { cards.validate(); } - public SimulationEditDialog(Window parent, OpenRocketDocument document, Simulation... sims) { - //// Edit simulation - super(parent, trans.get("simedtdlg.title.Editsim"), JDialog.ModalityType.DOCUMENT_MODAL); - this.document = document; - this.parentWindow = parent; - this.simulation = sims; - this.conditions = simulation[0].getOptions(); - configuration = simulation[0].getConfiguration(); - - this.cards = new JPanel(new CardLayout()); - this.add(cards); - { - JPanel simEditPanel = new JPanel(new MigLayout("fill")); - - if (isSingleEdit()) { - //// Simulation name: - simEditPanel.add(new JLabel(trans.get("simedtdlg.lbl.Simname") + " "), "shrink"); - final JTextField field = new JTextField(simulation[0].getName()); - field.getDocument().addDocumentListener(new DocumentListener() { - @Override - public void changedUpdate(DocumentEvent e) { - setText(); - } - - @Override - public void insertUpdate(DocumentEvent e) { - setText(); - } - - @Override - public void removeUpdate(DocumentEvent e) { - setText(); - } - - private void setText() { - String name = field.getText(); - if (name == null || name.equals("")) - return; - //System.out.println("Setting name:" + name); - simulation[0].setName(name); - - } - }); - simEditPanel.add(field, "shrinky, growx, wrap"); - - //// Flight selector - //// Flight configuration: - JLabel label = new JLabel(trans.get("simedtdlg.lbl.Flightcfg")); - //// Select the motor configuration to use. - label.setToolTipText(trans.get("simedtdlg.lbl.ttip.Flightcfg")); - simEditPanel.add(label, "shrink"); - - JComboBox combo = new JComboBox(new FlightConfigurationModel(configuration)); - //// Select the motor configuration to use. - combo.setToolTipText(trans.get("simedtdlg.combo.ttip.Flightcfg")); - combo.addActionListener(new ActionListener() { - @Override - public void actionPerformed(ActionEvent e) { - conditions.setMotorConfigurationID(configuration.getFlightConfigurationID()); - } - }); - simEditPanel.add(combo, "split 2, shrink"); - - //// Edit button - JButton button = new JButton(trans.get("simedtdlg.but.FlightcfgEdit")); - button.addActionListener(new ActionListener() { - @Override - public void actionPerformed(ActionEvent e) { - JDialog configDialog = new FlightConfigurationDialog(SimulationEditDialog.this.document.getRocket(), SwingUtilities.windowForComponent(SimulationEditDialog.this)); - configDialog.setVisible(true); - } - }); - simEditPanel.add(button, "shrink, wrap"); + private void copyChangesToAllSims() { + if (simulation.length > 1) { + for (int i = 1; i < simulation.length; i++) { + simulation[i].getOptions().copyConditionsFrom(simulation[0].getOptions()); + simulation[i].getSimulationListeners().clear(); + simulation[i].getSimulationListeners().addAll(simulation[0].getSimulationListeners()); } - JTabbedPane tabbedPane = new JTabbedPane(); - - //// Launch conditions - tabbedPane.addTab(trans.get("simedtdlg.tab.Launchcond"), new SimulationConditionsPanel(simulation[0])); - //// Simulation options - tabbedPane.addTab(trans.get("simedtdlg.tab.Simopt"), new SimulationOptionsPanel(simulation[0])); - - tabbedPane.setSelectedIndex(0); - - simEditPanel.add(tabbedPane, "spanx, grow, wrap"); - - - //// Open Plot button - JButton button = new JButton("< 1) { - for (int i = 1; i < simulation.length; i++) { - simulation[i].getOptions().copyConditionsFrom(simulation[0].getOptions()); - simulation[i].getSimulationListeners().clear(); - simulation[i].getSimulationListeners().addAll(simulation[0].getSimulationListeners()); - } - } - } - }