X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=src%2Fnet%2Fsf%2Fopenrocket%2Fgui%2Fmain%2FSimulationEditDialog.java;h=5f9e932f972f0d5197db6e8c84b7da2b7cbe8a6f;hb=e298a9509613f232227d16d28310611b33c3aa03;hp=d4774471a3aa784166dfa1b910c21312d13061cc;hpb=3300ab50b96876523862913e63fe168a0fcdb2bd;p=debian%2Fopenrocket diff --git a/src/net/sf/openrocket/gui/main/SimulationEditDialog.java b/src/net/sf/openrocket/gui/main/SimulationEditDialog.java index d4774471..5f9e932f 100644 --- a/src/net/sf/openrocket/gui/main/SimulationEditDialog.java +++ b/src/net/sf/openrocket/gui/main/SimulationEditDialog.java @@ -38,10 +38,11 @@ import net.sf.openrocket.gui.adaptors.DoubleModel; import net.sf.openrocket.gui.adaptors.MotorConfigurationModel; import net.sf.openrocket.gui.components.BasicSlider; import net.sf.openrocket.gui.components.DescriptionArea; +import net.sf.openrocket.gui.components.SimulationExportPanel; import net.sf.openrocket.gui.components.UnitSelector; import net.sf.openrocket.gui.plot.Axis; import net.sf.openrocket.gui.plot.PlotConfiguration; -import net.sf.openrocket.gui.plot.PlotPanel; +import net.sf.openrocket.gui.plot.SimulationPlotPanel; import net.sf.openrocket.rocketcomponent.Configuration; import net.sf.openrocket.simulation.FlightData; import net.sf.openrocket.simulation.FlightDataBranch; @@ -51,6 +52,7 @@ import net.sf.openrocket.simulation.SimulationListener; import net.sf.openrocket.simulation.listeners.CSVSaveListener; import net.sf.openrocket.unit.Unit; import net.sf.openrocket.unit.UnitGroup; +import net.sf.openrocket.util.Chars; import net.sf.openrocket.util.GUIUtil; import net.sf.openrocket.util.Icons; import net.sf.openrocket.util.Prefs; @@ -126,7 +128,7 @@ public class SimulationEditDialog extends JDialog { tabbedPane.addTab("Launch conditions", flightConditionsTab()); tabbedPane.addTab("Simulation options", simulationOptionsTab()); tabbedPane.addTab("Plot data", plotTab()); -// tabbedPane.addTab("Export data", exportTab()); + tabbedPane.addTab("Export data", exportTab()); // Select the initial tab if (tab == EDIT) { @@ -173,8 +175,8 @@ public class SimulationEditDialog extends JDialog { this.validate(); this.pack(); this.setLocationByPlatform(true); - GUIUtil.setDefaultButton(button); - GUIUtil.installEscapeCloseOperation(this); + + GUIUtil.setDisposableDialogOptions(this, button); } @@ -392,7 +394,7 @@ public class SimulationEditDialog extends JDialog { spin.setToolTipText(tip); sub.add(spin,"w 65lp!"); - label = new JLabel("\u00b0 N"); + label = new JLabel(Chars.DEGREE + " N"); label.setToolTipText(tip); sub.add(label,"growx"); slider = new BasicSlider(m.getSliderModel(-90, 90)); @@ -632,6 +634,12 @@ public class SimulationEditDialog extends JDialog { button.setToolTipText("Reset the time step to its default value (" + UnitGroup.UNITS_SHORT_TIME.toStringUnit(RK4Simulator.RECOMMENDED_TIME_STEP) + ")."); + button.addActionListener(new ActionListener() { + @Override + public void actionPerformed(ActionEvent e) { + conditions.setTimeStep(RK4Simulator.RECOMMENDED_TIME_STEP); + } + }); // button.setToolTipText("Reset the step value to its default:
" + // "Time step " + @@ -650,11 +658,11 @@ public class SimulationEditDialog extends JDialog { DescriptionArea desc = new DescriptionArea(5); - desc.setText("

" + + desc.setText("" + "Simulation listeners is an advanced feature that allows "+ "user-written code to listen to and interact with the simulation. " + "For details on writing simulation listeners, see the OpenRocket " + - "technical documentation.

"); + "technical documentation."); sub.add(desc, "aligny 0, growx, wrap para"); @@ -744,7 +752,7 @@ public class SimulationEditDialog extends JDialog { if (true) - return new PlotPanel(simulation); + return new SimulationPlotPanel(simulation); JPanel panel = new JPanel(new MigLayout("fill")); @@ -778,19 +786,15 @@ public class SimulationEditDialog extends JDialog { * A panel for exporting the data. */ private JPanel exportTab() { + FlightData data = simulation.getSimulatedData(); // Check that data exists - if (simulation.getSimulatedData() == null || - simulation.getSimulatedData().getBranchCount() == 0) { + if (data == null || data.getBranchCount() == 0 || + data.getBranch(0).getTypes().length == 0) { return noDataPanel(); } - - JPanel panel = new JPanel(new MigLayout("fill")); - - panel.add(new JLabel("Not implemented yet.")); // TODO: HIGH: Implement export - - return panel; + return new SimulationExportPanel(simulation); } @@ -801,7 +805,7 @@ public class SimulationEditDialog extends JDialog { * Return a panel stating that there is no data available, and that the user * should run the simulation first. */ - private JPanel noDataPanel() { + public static JPanel noDataPanel() { JPanel panel = new JPanel(new MigLayout("fill")); // No data available @@ -934,8 +938,8 @@ public class SimulationEditDialog extends JDialog { dialog.setLocationByPlatform(true); dialog.pack(); - GUIUtil.installEscapeCloseOperation(dialog); - GUIUtil.setDefaultButton(button); + + GUIUtil.setDisposableDialogOptions(dialog, button); dialog.setVisible(true); }