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

View File

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

View File

@ -23,7 +23,7 @@ import net.sf.openrocket.util.MathUtil;
*
* @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 Map<String,DeploymentConfiguration> deploymentConfigurations = new HashMap<String,DeploymentConfiguration>();
@ -114,16 +114,14 @@ public abstract class RecoveryDevice extends MassObject {
* @param configID
* @return
*/
public DeploymentConfiguration getDeploymentConfiguration( String configID ) {
@Override
public DeploymentConfiguration getFlightConfiguration( String configID ) {
DeploymentConfiguration config = deploymentConfigurations.get(configID);
return config;
}
public DeploymentConfiguration getDefaultDeploymentConfiguration() {
return defaultDeploymentConfig;
}
public void setDeploymentConfiguration( String configID, DeploymentConfiguration config ) {
@Override
public void setFlightConfiguration( String configID, DeploymentConfiguration config ) {
if ( config == null ) {
deploymentConfigurations.remove(configID);
} else {
@ -132,6 +130,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() {
return defaultDeploymentConfig.getDeployEvent();
}
@ -171,8 +185,6 @@ public abstract class RecoveryDevice extends MassObject {
fireComponentChangeEvent(ComponentChangeEvent.EVENT_CHANGE);
}
@Override
public double getComponentMass() {
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();
if (!(c instanceof RecoveryDevice))
continue;
DeploymentConfiguration deployConfig = ((RecoveryDevice) c).getDeploymentConfiguration(flightConfigurationId);
DeploymentConfiguration deployConfig = ((RecoveryDevice) c).getFlightConfiguration(flightConfigurationId);
if ( deployConfig == null ) {
deployConfig = ((RecoveryDevice) c).getDefaultDeploymentConfiguration();
deployConfig = ((RecoveryDevice) c).getDefaultFlightConfiguration();
}
if (deployConfig.isActivationEvent(event, c)) {
// Delay event by at least 1ms to allow stage separation to occur first