From 6d70cc61f1ce2c893f1765ea21363ff775d0ed41 Mon Sep 17 00:00:00 2001 From: Daniel_M_Williams Date: Sat, 22 Oct 2016 18:52:25 -0400 Subject: [PATCH] [Fix][Issue #294] Multiple fixes to ensure undo & redo function correctly - The Rocket#trackStages function needs to handle being updated with the same stage id#, but different instance - Rocket#update now updates the stageMap - FlightConfigurations refactored to use stage numbers instead of references. --- .../rocketcomponent/FlightConfiguration.java | 40 ++++++++----------- .../sf/openrocket/rocketcomponent/Rocket.java | 17 +++++++- 2 files changed, 32 insertions(+), 25 deletions(-) diff --git a/core/src/net/sf/openrocket/rocketcomponent/FlightConfiguration.java b/core/src/net/sf/openrocket/rocketcomponent/FlightConfiguration.java index bb637dcc5..8a2f4f11f 100644 --- a/core/src/net/sf/openrocket/rocketcomponent/FlightConfiguration.java +++ b/core/src/net/sf/openrocket/rocketcomponent/FlightConfiguration.java @@ -3,7 +3,6 @@ package net.sf.openrocket.rocketcomponent; import java.util.ArrayDeque; import java.util.Collection; import java.util.HashMap; -import java.util.Iterator; import java.util.List; import java.util.Queue; @@ -42,18 +41,17 @@ public class FlightConfiguration implements FlightConfigurableParameter iter = rocket.iterator(false); - while( iter.hasNext() ){ - RocketComponent comp = iter.next(); + for ( RocketComponent comp : getActiveComponents() ){ if (( comp instanceof MotorMount )&&( ((MotorMount)comp).isMotorMount())){ MotorMount mount = (MotorMount)comp; MotorConfiguration motorConfig = mount.getMotorConfig( fcid); @@ -532,8 +524,8 @@ public class FlightConfiguration implements FlightConfigurableParameter