Merge pull request #2125 from SiboVG/issue-2101

[#2101] Copy config name when copy/load rocket
This commit is contained in:
Sibo Van Gool 2023-03-21 23:18:28 +01:00 committed by GitHub
commit 55beb2be8d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 16 additions and 7 deletions

View File

@ -33,7 +33,6 @@ import net.sf.openrocket.util.Transformation;
*/
public class FlightConfiguration implements FlightConfigurableParameter<FlightConfiguration>, Monitorable {
private static final Logger log = LoggerFactory.getLogger(FlightConfiguration.class);
private static final Translator trans = Application.getTranslator();
private String configurationName;
public static String DEFAULT_CONFIG_NAME = "[{motors}]";

View File

@ -382,7 +382,9 @@ public class Rocket extends ComponentAssembly {
// the default value needs to be explicitly set, because it has different semantics
copyRocket.configSet = new FlightConfigurableParameterSet<>(new FlightConfiguration(copyRocket));
for (FlightConfigurationId key : this.configSet.getIds()) {
copyRocket.configSet.set(key, new FlightConfiguration(copyRocket, key));
FlightConfiguration newCfg = new FlightConfiguration(copyRocket, key);
newCfg.setName(this.configSet.get(key).getName()); // Copy config name
copyRocket.configSet.set(key, newCfg);
}
copyRocket.selectedConfiguration = copyRocket.configSet.get( this.getSelectedConfiguration().getId());
@ -432,7 +434,9 @@ public class Rocket extends ComponentAssembly {
this.configSet.reset();
this.configSet.setDefault(new FlightConfiguration(this));
for (FlightConfigurationId key : source.configSet.map.keySet()) {
this.configSet.set(key, new FlightConfiguration(this, key));
FlightConfiguration newCfg = new FlightConfiguration(this, key);
newCfg.setName(source.configSet.get(key).getName()); // Copy config name
this.configSet.set(key, newCfg);
}
this.selectedConfiguration = this.configSet.get(source.getSelectedConfiguration().getId());

View File

@ -4,6 +4,7 @@ import static org.hamcrest.CoreMatchers.equalTo;
import static org.hamcrest.CoreMatchers.not;
import static org.hamcrest.Matchers.closeTo;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotEquals;
import static org.junit.Assert.assertThat;
@ -26,6 +27,7 @@ public class RocketTest extends BaseTestCase {
public void testCopyIndependence() {
Rocket rkt1 = TestRockets.makeEstesAlphaIII();
FlightConfiguration config1 = new FlightConfiguration(rkt1, null);
config1.setName("Test config 1");
rkt1.setFlightConfiguration( config1.getId(), config1);
rkt1.setSelectedConfiguration( config1.getId());
FlightConfiguration config2 = new FlightConfiguration(rkt1, null);
@ -38,13 +40,17 @@ public class RocketTest extends BaseTestCase {
FlightConfiguration config4 = rkt2.getSelectedConfiguration();
FlightConfigurationId fcid4 = config4.getId();
assertThat("fcids should match: ", config1.getId().key, equalTo(fcid4.key));
assertThat("Configurations should be different: "+config1.toDebug()+"=?="+config4.toDebug(), config1.configurationInstanceId, not( config4.configurationInstanceId));
assertEquals("fcids should match: ", config1.getId().key, fcid4.key);
assertEquals("names should match: ", config1.getName(), config4.getName());
assertEquals("name not right: ", "Test config 1", config4.getName());
assertNotEquals("Configurations should be different: "+config1.toDebug()+"=?="+config4.toDebug(),
config1.configurationInstanceId, config4.configurationInstanceId);
FlightConfiguration config5 = rkt2.getFlightConfiguration(config2.getId());
FlightConfigurationId fcid5 = config5.getId();
assertThat("fcids should match: ", config2.getId(), equalTo(fcid5));
assertThat("Configurations should bef different match: "+config2.toDebug()+"=?="+config5.toDebug(), config2.configurationInstanceId, not( config5.configurationInstanceId));
assertEquals("fcids should match: ", config2.getId(), fcid5);
assertNotEquals("Configurations should bef different match: "+config2.toDebug()+"=?="+config5.toDebug(),
config2.configurationInstanceId, config5.configurationInstanceId);
}