From 522c3a49b612003f3e2eb500ff64cc8493d1081b Mon Sep 17 00:00:00 2001 From: SiboVG Date: Mon, 27 Mar 2023 22:50:45 +0200 Subject: [PATCH 1/5] Fix bad naming of menu variables --- .../sf/openrocket/gui/main/BasicFrame.java | 50 +++++++++---------- 1 file changed, 25 insertions(+), 25 deletions(-) diff --git a/swing/src/net/sf/openrocket/gui/main/BasicFrame.java b/swing/src/net/sf/openrocket/gui/main/BasicFrame.java index dd3417dbf..cfdeb14ba 100644 --- a/swing/src/net/sf/openrocket/gui/main/BasicFrame.java +++ b/swing/src/net/sf/openrocket/gui/main/BasicFrame.java @@ -515,12 +515,12 @@ public class BasicFrame extends JFrame { fileMenu.add(item); //// Edit - fileMenu = new JMenu(trans.get("main.menu.edit")); - fileMenu.setMnemonic(KeyEvent.VK_E); + JMenu editMenu = new JMenu(trans.get("main.menu.edit")); + editMenu.setMnemonic(KeyEvent.VK_E); //// Rocket editing - fileMenu.getAccessibleContext().setAccessibleDescription(trans.get("main.menu.edit.desc")); - menubar.add(fileMenu); + editMenu.getAccessibleContext().setAccessibleDescription(trans.get("main.menu.edit.desc")); + menubar.add(editMenu); Action action = UndoRedoAction.newUndoAction(document); item = new JMenuItem(action); @@ -530,7 +530,7 @@ public class BasicFrame extends JFrame { //// Undo the previous operation item.getAccessibleContext().setAccessibleDescription(trans.get("main.menu.edit.undo.desc")); - fileMenu.add(item); + editMenu.add(item); action = UndoRedoAction.newRedoAction(document); item = new JMenuItem(action); @@ -539,42 +539,42 @@ public class BasicFrame extends JFrame { //// Redo the previously undone operation item.getAccessibleContext().setAccessibleDescription(trans.get("main.menu.edit.redo.desc")); - fileMenu.add(item); + editMenu.add(item); - fileMenu.addSeparator(); + editMenu.addSeparator(); item = new JMenuItem(actions.getEditAction()); - fileMenu.add(item); + editMenu.add(item); item = new JMenuItem(actions.getCutAction()); - fileMenu.add(item); + editMenu.add(item); item = new JMenuItem(actions.getCopyAction()); - fileMenu.add(item); + editMenu.add(item); item = new JMenuItem(actions.getPasteAction()); - fileMenu.add(item); + editMenu.add(item); item = new JMenuItem(actions.getDuplicateAction()); - fileMenu.add(item); + editMenu.add(item); item = new JMenuItem(actions.getDeleteAction()); - fileMenu.add(item); + editMenu.add(item); - fileMenu.addSeparator(); + editMenu.addSeparator(); JMenu subMenu = new JMenu(trans.get("RocketActions.Select")); - fileMenu.add(subMenu); + editMenu.add(subMenu); item = new JMenuItem(actions.getSelectSameColorAction()); subMenu.add(item); item = new JMenuItem(actions.getDeselectAllAction()); subMenu.add(item); - fileMenu.addSeparator(); + editMenu.addSeparator(); item = new JMenuItem(actions.getScaleAction()); - fileMenu.add(item); + editMenu.add(item); //// Preferences @@ -590,7 +590,7 @@ public class BasicFrame extends JFrame { PreferencesDialog.showPreferences(BasicFrame.this); } }); - fileMenu.add(item); + editMenu.add(item); //// Edit Component Preset File if (System.getProperty("openrocket.preseteditor.fileMenu") != null) { @@ -605,13 +605,13 @@ public class BasicFrame extends JFrame { dialog.setVisible(true); } }); - fileMenu.add(item); + editMenu.add(item); } // Tools - fileMenu = new JMenu(trans.get("main.menu.tools")); - menubar.add(fileMenu); + JMenu toolsMenu = new JMenu(trans.get("main.menu.tools")); + menubar.add(toolsMenu); //// Component analysis item = new JMenuItem(trans.get("main.menu.tools.componentAnalysis"), KeyEvent.VK_C); @@ -625,7 +625,7 @@ public class BasicFrame extends JFrame { ComponentAnalysisDialog.showDialog(rocketpanel); } }); - fileMenu.add(item); + toolsMenu.add(item); //// Optimize item = new JMenuItem(trans.get("main.menu.tools.optimization"), KeyEvent.VK_O); @@ -641,7 +641,7 @@ public class BasicFrame extends JFrame { } } }); - fileMenu.add(item); + toolsMenu.add(item); //// Custom expressions item = new JMenuItem(trans.get("main.menu.tools.customExpressions"), KeyEvent.VK_E); @@ -653,7 +653,7 @@ public class BasicFrame extends JFrame { new CustomExpressionDialog(document, BasicFrame.this).setVisible(true); } }); - fileMenu.add(item); + toolsMenu.add(item); item = new JMenuItem(trans.get("PhotoFrame.title"), KeyEvent.VK_P); item.getAccessibleContext().setAccessibleDescription(trans.get("PhotoFrame.desc")); @@ -665,7 +665,7 @@ public class BasicFrame extends JFrame { pa.setVisible(true); } }); - fileMenu.add(item); + toolsMenu.add(item); //// Debug // // (shown if openrocket.debug.fileMenu is defined) From 5fcf3e9850743b3320b7fde20e7a12816c417464 Mon Sep 17 00:00:00 2001 From: SiboVG Date: Mon, 27 Mar 2023 22:58:14 +0200 Subject: [PATCH 2/5] Clean up code --- swing/src/net/sf/openrocket/gui/main/BasicFrame.java | 11 ----------- .../openrocket/gui/main/ExampleDesignFileAction.java | 2 +- 2 files changed, 1 insertion(+), 12 deletions(-) diff --git a/swing/src/net/sf/openrocket/gui/main/BasicFrame.java b/swing/src/net/sf/openrocket/gui/main/BasicFrame.java index cfdeb14ba..2f968abe1 100644 --- a/swing/src/net/sf/openrocket/gui/main/BasicFrame.java +++ b/swing/src/net/sf/openrocket/gui/main/BasicFrame.java @@ -1284,34 +1284,24 @@ public class BasicFrame extends JFrame { //// Handle the document OpenRocketDocument doc = null; try { - doc = worker.get(); - } catch (ExecutionException e) { - Throwable cause = e.getCause(); - if (cause instanceof FileNotFoundException) { - log.warn("File not found", cause); JOptionPane.showMessageDialog(parent, "File not found: " + displayName, "Error opening file", JOptionPane.ERROR_MESSAGE); return null; - } else if (cause instanceof RocketLoadException) { - log.warn("Error loading the file", cause); JOptionPane.showMessageDialog(parent, "Unable to open file '" + displayName + "': " + cause.getMessage(), "Error opening file", JOptionPane.ERROR_MESSAGE); return null; - } else { - throw new BugException("Unknown error when opening file", e); - } } catch (InterruptedException e) { @@ -1322,7 +1312,6 @@ public class BasicFrame extends JFrame { throw new BugException("Document loader returned null"); } - //// Show warnings WarningSet warnings = worker.getRocketLoader().getWarnings(); if (!warnings.isEmpty()) { diff --git a/swing/src/net/sf/openrocket/gui/main/ExampleDesignFileAction.java b/swing/src/net/sf/openrocket/gui/main/ExampleDesignFileAction.java index b56bc8ddf..b70b47ad8 100644 --- a/swing/src/net/sf/openrocket/gui/main/ExampleDesignFileAction.java +++ b/swing/src/net/sf/openrocket/gui/main/ExampleDesignFileAction.java @@ -107,7 +107,7 @@ public final class ExampleDesignFileAction extends JMenu { /** * When a user clicks on one of the recently used design files, open it. * - * @param file the design file name (absolute path) + * @param example the design file name (absolute path) * * @return the action to open a design file */ From f7a66472d56da9695fd140617689fc387af66495 Mon Sep 17 00:00:00 2001 From: SiboVG Date: Tue, 28 Mar 2023 18:32:39 +0200 Subject: [PATCH 3/5] [#2148] Apply sim changes when window closes --- .../gui/simulation/SimulationEditDialog.java | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/swing/src/net/sf/openrocket/gui/simulation/SimulationEditDialog.java b/swing/src/net/sf/openrocket/gui/simulation/SimulationEditDialog.java index 287182c92..32effec96 100644 --- a/swing/src/net/sf/openrocket/gui/simulation/SimulationEditDialog.java +++ b/swing/src/net/sf/openrocket/gui/simulation/SimulationEditDialog.java @@ -5,6 +5,9 @@ import java.awt.CardLayout; import java.awt.Window; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; +import java.awt.event.WindowAdapter; +import java.awt.event.WindowEvent; +import java.awt.event.WindowListener; import javax.swing.JButton; import javax.swing.JComboBox; @@ -42,6 +45,8 @@ public class SimulationEditDialog extends JDialog { JPanel cards; private final static String EDITMODE = "EDIT"; private final static String PLOTMODE = "PLOT"; + + private WindowListener applyChangesToSimsListener; public SimulationEditDialog(Window parent, final OpenRocketDocument document, Simulation... sims) { //// Edit simulation @@ -59,6 +64,14 @@ public class SimulationEditDialog extends JDialog { this.pack(); this.setLocationByPlatform(true); + + this.applyChangesToSimsListener = new WindowAdapter() { + @Override + public void windowClosed(WindowEvent e) { + copyChangesToAllSims(); + } + }; + this.addWindowListener(applyChangesToSimsListener); GUIUtil.setDisposableDialogOptions(this, null); } @@ -75,12 +88,14 @@ public class SimulationEditDialog extends JDialog { CardLayout cl = (CardLayout) (cards.getLayout()); cl.show(cards, EDITMODE); cards.validate(); + this.addWindowListener(applyChangesToSimsListener); } public void setPlotMode() { if (!allowsPlotMode()) { return; } + this.removeWindowListener(applyChangesToSimsListener); setTitle(trans.get("simplotpanel.title.Plotsim")); CardLayout cl = (CardLayout) (cards.getLayout()); cl.show(cards, PLOTMODE); @@ -223,7 +238,6 @@ public class SimulationEditDialog extends JDialog { close.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { - copyChangesToAllSims(); SimulationEditDialog.this.dispose(); } }); From fa7f7635ca7fe0f1ec5c058432f9139b2a371a13 Mon Sep 17 00:00:00 2001 From: SiboVG Date: Tue, 28 Mar 2023 18:37:32 +0200 Subject: [PATCH 4/5] [#1826] Fill in gaps in multi-sim editing --- .../simulation/SimulationOptions.java | 29 +++++++++++++------ 1 file changed, 20 insertions(+), 9 deletions(-) diff --git a/core/src/net/sf/openrocket/simulation/SimulationOptions.java b/core/src/net/sf/openrocket/simulation/SimulationOptions.java index 0025c1f5b..84c20313e 100644 --- a/core/src/net/sf/openrocket/simulation/SimulationOptions.java +++ b/core/src/net/sf/openrocket/simulation/SimulationOptions.java @@ -442,10 +442,6 @@ public class SimulationOptions implements ChangeSource, Cloneable { isChanged = true; this.launchLongitude = src.launchLongitude; } - if (this.launchPressure != src.launchPressure) { - isChanged = true; - this.launchPressure = src.launchPressure; - } if (this.launchRodAngle != src.launchRodAngle) { isChanged = true; this.launchRodAngle = src.launchRodAngle; @@ -458,19 +454,26 @@ public class SimulationOptions implements ChangeSource, Cloneable { isChanged = true; this.launchRodLength = src.launchRodLength; } + if (this.launchIntoWind != src.launchIntoWind) { + isChanged = true; + this.launchIntoWind = src.launchIntoWind; + } + if (this.useISA != src.useISA) { + isChanged = true; + this.useISA = src.useISA; + } if (this.launchTemperature != src.launchTemperature) { isChanged = true; this.launchTemperature = src.launchTemperature; } + if (this.launchPressure != src.launchPressure) { + isChanged = true; + this.launchPressure = src.launchPressure; + } if (this.maximumAngle != src.maximumAngle) { isChanged = true; this.maximumAngle = src.maximumAngle; } - this.maximumAngle = src.maximumAngle; - if (this.timeStep != src.timeStep) { - isChanged = true; - this.timeStep = src.timeStep; - } if (this.windAverage != src.windAverage) { isChanged = true; this.windAverage = src.windAverage; @@ -487,6 +490,14 @@ public class SimulationOptions implements ChangeSource, Cloneable { isChanged = true; this.calculateExtras = src.calculateExtras; } + if (this.timeStep != src.timeStep) { + isChanged = true; + this.timeStep = src.timeStep; + } + if (this.geodeticComputation != src.geodeticComputation) { + isChanged = true; + this.geodeticComputation = src.geodeticComputation; + } if (isChanged) { // Only copy the randomSeed if something else has changed. From fd0018c9a4efdf73c61785ec9a0103932db981c7 Mon Sep 17 00:00:00 2001 From: SiboVG Date: Tue, 28 Mar 2023 18:44:08 +0200 Subject: [PATCH 5/5] Enable the edit sim action for multiple sims --- swing/src/net/sf/openrocket/gui/main/SimulationPanel.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/swing/src/net/sf/openrocket/gui/main/SimulationPanel.java b/swing/src/net/sf/openrocket/gui/main/SimulationPanel.java index 17336d761..b1a31377b 100644 --- a/swing/src/net/sf/openrocket/gui/main/SimulationPanel.java +++ b/swing/src/net/sf/openrocket/gui/main/SimulationPanel.java @@ -662,7 +662,7 @@ public class SimulationPanel extends JPanel { @Override public void updateEnabledState() { - setEnabled(simulationTable.getSelectedRowCount() == 1); + setEnabled(simulationTable.getSelectedRowCount() > 0); } }