diff --git a/swing/src/net/sf/openrocket/gui/main/flightconfigpanel/FlightConfigurationPanel.java b/swing/src/net/sf/openrocket/gui/main/flightconfigpanel/FlightConfigurationPanel.java index 59d75641b..98d3c607e 100644 --- a/swing/src/net/sf/openrocket/gui/main/flightconfigpanel/FlightConfigurationPanel.java +++ b/swing/src/net/sf/openrocket/gui/main/flightconfigpanel/FlightConfigurationPanel.java @@ -170,7 +170,7 @@ public class FlightConfigurationPanel extends JPanel implements StateChangeListe * create simulation for new configuration */ private void addOrCopyConfiguration(boolean copy) { - Map newConfigs = new LinkedHashMap<>(); + final Map newConfigs = new LinkedHashMap<>(); // create or copy configuration if (copy) { @@ -198,20 +198,22 @@ public class FlightConfigurationPanel extends JPanel implements StateChangeListe newConfigs.put(newId, newConfig); } - for (FlightConfigurationId newId : newConfigs.keySet()) { + OpenRocketDocument doc = BasicFrame.findDocument(rocket); + if (doc == null) return; + + for (Map.Entry config : newConfigs.entrySet()) { // associate configuration with Id and select it - rocket.setFlightConfiguration(newId, newConfigs.get(newId)); + rocket.setFlightConfiguration(config.getKey(), config.getValue()); + rocket.setSelectedConfiguration(config.getKey()); // create simulation for configuration Simulation newSim = new Simulation(rocket); - OpenRocketDocument doc = BasicFrame.findDocument(rocket); - if (doc != null) { - newSim.setName(doc.getNextSimulationName()); - doc.addSimulation(newSim); - } + newSim.setName(doc.getNextSimulationName()); + doc.addSimulation(newSim); } + // Reset to first selected flight config rocket.setSelectedConfiguration((FlightConfigurationId) newConfigs.keySet().toArray()[0]); }