From 6641f959c5a2baf4af1fc7fc41799874184ce69d Mon Sep 17 00:00:00 2001 From: kruland2607 Date: Wed, 9 Oct 2013 16:06:30 -0500 Subject: [PATCH] When deleting a flight configuration, first change the configuration to a different one. --- core/src/net/sf/openrocket/rocketcomponent/Rocket.java | 7 +++++++ .../main/flightconfigpanel/FlightConfigurationPanel.java | 1 - 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/core/src/net/sf/openrocket/rocketcomponent/Rocket.java b/core/src/net/sf/openrocket/rocketcomponent/Rocket.java index 144706f7b..2bbe48757 100644 --- a/core/src/net/sf/openrocket/rocketcomponent/Rocket.java +++ b/core/src/net/sf/openrocket/rocketcomponent/Rocket.java @@ -545,7 +545,14 @@ public class Rocket extends RocketComponent { checkState(); if (id == null) return; + // Get current configuration: + String currentId = getDefaultConfiguration().getFlightConfigurationID(); + // If we're removing the current configuration, we need to switch to a different one first. + if (currentId != null && currentId.equals(id)) { + getDefaultConfiguration().setFlightConfigurationID(null); + } flightConfigurationIDs.remove(id); + // FIXME - remove corresponding simulations? fireComponentChangeEvent(ComponentChangeEvent.MOTOR_CHANGE); } 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 de8001ead..a9f3e2119 100644 --- a/swing/src/net/sf/openrocket/gui/main/flightconfigpanel/FlightConfigurationPanel.java +++ b/swing/src/net/sf/openrocket/gui/main/flightconfigpanel/FlightConfigurationPanel.java @@ -156,7 +156,6 @@ public class FlightConfigurationPanel extends JPanel implements StateChangeListe if (currentId == null) return; rocket.removeFlightConfigurationID(currentId); - rocket.getDefaultConfiguration().setFlightConfigurationID(null); configurationChanged(); }