Fix the ignition display logic to account for default settings.

This commit is contained in:
kruland2607 2012-10-18 15:25:03 -05:00
parent 5b32242b45
commit 0e126b1b5f

View File

@ -199,10 +199,10 @@ public class MotorConfigurationPanel extends JPanel {
return list.toArray(new MotorMount[0]); return list.toArray(new MotorMount[0]);
} }
public MotorMount findMount(int column) { public MotorMount findMount(int row) {
MotorMount mount = null; MotorMount mount = null;
int count = column; int count = row;
for (MotorMount m : mounts) { for (MotorMount m : mounts) {
if (m.isMotorMount()) if (m.isMotorMount())
count--; count--;
@ -213,14 +213,14 @@ public class MotorConfigurationPanel extends JPanel {
} }
if (mount == null) { if (mount == null) {
throw new IndexOutOfBoundsException("motor mount not found, column=" + column); throw new IndexOutOfBoundsException("motor mount not found, row=" + row);
} }
return mount; return mount;
} }
public String findMotorForDisplay( int column ) { public String findMotorForDisplay( int row ) {
String currentID = rocket.getDefaultConfiguration().getFlightConfigurationID(); String currentID = rocket.getDefaultConfiguration().getFlightConfigurationID();
MotorMount mount = findMount(column); MotorMount mount = findMount(row);
Motor motor = mount.getMotor(currentID); Motor motor = mount.getMotor(currentID);
if (motor == null) if (motor == null)
return null; return null;
@ -233,15 +233,30 @@ public class MotorConfigurationPanel extends JPanel {
return str; return str;
} }
public String findIgnitionForDisplay( int column ) { public String findIgnitionForDisplay( int row ) {
String currentID = rocket.getDefaultConfiguration().getFlightConfigurationID(); String currentID = rocket.getDefaultConfiguration().getFlightConfigurationID();
MotorMount mount = findMount(column); MotorMount mount = findMount(row);
Motor motor = mount.getMotor(currentID); MotorConfiguration motorConfig = mount.getFlightConfiguration(currentID);
if (motor == null) if (motorConfig == null)
//// None //// None
return null; return null;
MotorConfiguration.IgnitionEvent ignition = mount.getDefaultIgnitionEvent(); StringBuilder sb = new StringBuilder();
return ignition.toString(); MotorConfiguration.IgnitionEvent ignition = motorConfig.getIgnitionEvent();
if ( ignition == null ) {
sb.append("[").append(mount.getDefaultIgnitionEvent().toString()).append("]");
} else {
sb.append(ignition.toString());
}
Double ignitionDelay = motorConfig.getIgnitionDelay();
if ( ignitionDelay == null ) {
double defaultdelay = mount.getDefaultIgnitionDelay();
if ( defaultdelay > 0 ) {
sb.append(" + [").append(defaultdelay).append("s]");
}
} else {
sb.append(" + ").append(ignitionDelay).append("s");
}
return sb.toString();
} }