Added SupportsFlightConfiguration interface and implemented it by

RecoveryDevice.
This commit is contained in:
kruland2607 2012-10-17 12:31:31 -05:00
parent 759facf9dd
commit e364c10026
5 changed files with 44 additions and 17 deletions

View File

@ -95,7 +95,7 @@ public class RecoveryConfigurationPanel extends JPanel {
} }
private void resetDeployment() { private void resetDeployment() {
selectedComponent.setDeploymentConfiguration(rocket.getDefaultConfiguration().getFlightConfigurationID(), null); selectedComponent.setFlightConfiguration(rocket.getDefaultConfiguration().getFlightConfigurationID(), null);
} }
private void updateButtonState() { private void updateButtonState() {
@ -144,9 +144,9 @@ public class RecoveryConfigurationPanel extends JPanel {
case 0: case 0:
return d.getName(); return d.getName();
case 1: case 1:
DeploymentConfiguration deployConfig = d.getDeploymentConfiguration(rocket.getDefaultConfiguration().getFlightConfigurationID()); DeploymentConfiguration deployConfig = d.getFlightConfiguration(rocket.getDefaultConfiguration().getFlightConfigurationID());
if ( deployConfig == null ) { if ( deployConfig == null ) {
return "[" + d.getDefaultDeploymentConfiguration().toString() + "]"; return "[" + d.getDefaultFlightConfiguration().toString() + "]";
} else { } else {
return deployConfig.toString(); return deployConfig.toString();
} }

View File

@ -32,9 +32,9 @@ public class SelectDeploymentConfigDialog extends JDialog {
super.setModal(true); super.setModal(true);
final String configId = rocket.getDefaultConfiguration().getFlightConfigurationID(); final String configId = rocket.getDefaultConfiguration().getFlightConfigurationID();
newConfiguration = component.getDeploymentConfiguration(configId); newConfiguration = component.getFlightConfiguration(configId);
if ( newConfiguration == null ) { if ( newConfiguration == null ) {
newConfiguration = component.getDefaultDeploymentConfiguration().clone(); newConfiguration = component.getDefaultFlightConfiguration().clone();
} else { } else {
// Clone the existing so cancel works. When the user selects OK, this configuration // Clone the existing so cancel works. When the user selects OK, this configuration
// is put back in there. // is put back in there.
@ -113,7 +113,7 @@ public class SelectDeploymentConfigDialog extends JDialog {
double deployAltitude = alt.getCurrentUnit().fromUnit( alt.getValue() ); double deployAltitude = alt.getCurrentUnit().fromUnit( alt.getValue() );
newConfiguration.setDeployAltitude(deployAltitude); newConfiguration.setDeployAltitude(deployAltitude);
component.setDeploymentConfiguration(configId, newConfiguration); component.setFlightConfiguration(configId, newConfiguration);
SelectDeploymentConfigDialog.this.setVisible(false); SelectDeploymentConfigDialog.this.setVisible(false);
} }

View File

@ -23,7 +23,7 @@ import net.sf.openrocket.util.MathUtil;
* *
* @author Sampo Niskanen <sampo.niskanen@iki.fi> * @author Sampo Niskanen <sampo.niskanen@iki.fi>
*/ */
public abstract class RecoveryDevice extends MassObject { public abstract class RecoveryDevice extends MassObject implements SupportsFlightConfiguration<DeploymentConfiguration> {
private static final Translator trans = Application.getTranslator(); private static final Translator trans = Application.getTranslator();
private Map<String,DeploymentConfiguration> deploymentConfigurations = new HashMap<String,DeploymentConfiguration>(); private Map<String,DeploymentConfiguration> deploymentConfigurations = new HashMap<String,DeploymentConfiguration>();
@ -114,16 +114,14 @@ public abstract class RecoveryDevice extends MassObject {
* @param configID * @param configID
* @return * @return
*/ */
public DeploymentConfiguration getDeploymentConfiguration( String configID ) { @Override
public DeploymentConfiguration getFlightConfiguration( String configID ) {
DeploymentConfiguration config = deploymentConfigurations.get(configID); DeploymentConfiguration config = deploymentConfigurations.get(configID);
return config; return config;
} }
public DeploymentConfiguration getDefaultDeploymentConfiguration() { @Override
return defaultDeploymentConfig; public void setFlightConfiguration( String configID, DeploymentConfiguration config ) {
}
public void setDeploymentConfiguration( String configID, DeploymentConfiguration config ) {
if ( config == null ) { if ( config == null ) {
deploymentConfigurations.remove(configID); deploymentConfigurations.remove(configID);
} else { } else {
@ -131,6 +129,22 @@ public abstract class RecoveryDevice extends MassObject {
} }
} }
@Override
public DeploymentConfiguration getDefaultFlightConfiguration() {
return defaultDeploymentConfig;
}
@Override
public void setDefaultFlightConfiguration( DeploymentConfiguration config ) {
this.defaultDeploymentConfig = config;
}
@Override
public void cloneFlightConfiguration( String oldConfigId, String newConfigId ) {
DeploymentConfiguration oldConfig = getFlightConfiguration(oldConfigId);
setFlightConfiguration( newConfigId, oldConfig.clone() );
}
public DeployEvent getDefaultDeployEvent() { public DeployEvent getDefaultDeployEvent() {
return defaultDeploymentConfig.getDeployEvent(); return defaultDeploymentConfig.getDeployEvent();
@ -171,8 +185,6 @@ public abstract class RecoveryDevice extends MassObject {
fireComponentChangeEvent(ComponentChangeEvent.EVENT_CHANGE); fireComponentChangeEvent(ComponentChangeEvent.EVENT_CHANGE);
} }
@Override @Override
public double getComponentMass() { public double getComponentMass() {
return getArea() * getMaterial().getDensity(); return getArea() * getMaterial().getDensity();

View File

@ -0,0 +1,15 @@
package net.sf.openrocket.rocketcomponent;
public interface SupportsFlightConfiguration<T> {
public T getFlightConfiguration( String configId );
public void setFlightConfiguration( String configId, T config );
public void cloneFlightConfiguration( String oldConfigId, String newConfigId );
public T getDefaultFlightConfiguration();
public void setDefaultFlightConfiguration( T config );
}

View File

@ -375,9 +375,9 @@ public class BasicEventSimulationEngine implements SimulationEngine {
RocketComponent c = rci.next(); RocketComponent c = rci.next();
if (!(c instanceof RecoveryDevice)) if (!(c instanceof RecoveryDevice))
continue; continue;
DeploymentConfiguration deployConfig = ((RecoveryDevice) c).getDeploymentConfiguration(flightConfigurationId); DeploymentConfiguration deployConfig = ((RecoveryDevice) c).getFlightConfiguration(flightConfigurationId);
if ( deployConfig == null ) { if ( deployConfig == null ) {
deployConfig = ((RecoveryDevice) c).getDefaultDeploymentConfiguration(); deployConfig = ((RecoveryDevice) c).getDefaultFlightConfiguration();
} }
if (deployConfig.isActivationEvent(event, c)) { if (deployConfig.isActivationEvent(event, c)) {
// Delay event by at least 1ms to allow stage separation to occur first // Delay event by at least 1ms to allow stage separation to occur first