[#2090] Add plugged option to charge delay if it wasn't present yet
This commit is contained in:
parent
022a986130
commit
7ab943e824
@ -179,8 +179,11 @@ public class ThrustCurveMotorSelectionPanel extends JPanel implements MotorSelec
|
|||||||
delayBox.addActionListener(new ActionListener() {
|
delayBox.addActionListener(new ActionListener() {
|
||||||
@Override
|
@Override
|
||||||
public void actionPerformed(ActionEvent e) {
|
public void actionPerformed(ActionEvent e) {
|
||||||
|
|
||||||
String sel = (String) delayBox.getSelectedItem();
|
String sel = (String) delayBox.getSelectedItem();
|
||||||
|
if (sel == null) {
|
||||||
|
log.debug("Selected charge delay is null");
|
||||||
|
return;
|
||||||
|
}
|
||||||
//// None
|
//// None
|
||||||
if (sel.equalsIgnoreCase(trans.get("TCMotorSelPan.equalsIgnoreCase.None"))) {
|
if (sel.equalsIgnoreCase(trans.get("TCMotorSelPan.equalsIgnoreCase.None"))) {
|
||||||
selectedDelay = Motor.PLUGGED_DELAY;
|
selectedDelay = Motor.PLUGGED_DELAY;
|
||||||
@ -663,47 +666,46 @@ public class ThrustCurveMotorSelectionPanel extends JPanel implements MotorSelec
|
|||||||
*/
|
*/
|
||||||
private void setDelays(boolean reset) {
|
private void setDelays(boolean reset) {
|
||||||
if (selectedMotor == null) {
|
if (selectedMotor == null) {
|
||||||
|
|
||||||
//// None
|
//// None
|
||||||
delayBox.setModel(new DefaultComboBoxModel<String>(new String[] { trans.get("TCMotorSelPan.delayBox.None") }));
|
delayBox.setModel(new DefaultComboBoxModel<String>(new String[] { trans.get("TCMotorSelPan.delayBox.None") }));
|
||||||
delayBox.setSelectedIndex(0);
|
delayBox.setSelectedIndex(0);
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
|
|
||||||
List<Double> delays = selectedMotorSet.getDelays();
|
List<Double> delays = selectedMotorSet.getDelays();
|
||||||
String[] delayStrings = new String[delays.size()];
|
boolean containsPlugged = delays.contains(Motor.PLUGGED_DELAY);
|
||||||
|
int size = delays.size() + (containsPlugged ? 0 : 1);
|
||||||
|
String[] delayStrings = new String[size];
|
||||||
double currentDelay = selectedDelay; // Store current setting locally
|
double currentDelay = selectedDelay; // Store current setting locally
|
||||||
|
|
||||||
for (int i = 0; i < delays.size(); i++) {
|
for (int i = 0; i < delays.size(); i++) {
|
||||||
//// None
|
//// None
|
||||||
delayStrings[i] = ThrustCurveMotor.getDelayString(delays.get(i), trans.get("TCMotorSelPan.delayBox.None"));
|
delayStrings[i] = ThrustCurveMotor.getDelayString(delays.get(i), trans.get("TCMotorSelPan.delayBox.None"));
|
||||||
}
|
}
|
||||||
|
// We always want the plugged option in the combobox, even if the motor doesn't have it
|
||||||
|
if (!containsPlugged) {
|
||||||
|
delayStrings[delayStrings.length - 1] = trans.get("TCMotorSelPan.delayBox.None");
|
||||||
|
}
|
||||||
delayBox.setModel(new DefaultComboBoxModel<String>(delayStrings));
|
delayBox.setModel(new DefaultComboBoxModel<String>(delayStrings));
|
||||||
|
|
||||||
if (reset) {
|
if (reset) {
|
||||||
|
|
||||||
// Find and set the closest value
|
// Find and set the closest value
|
||||||
double closest = Double.NaN;
|
double closest = Double.NaN;
|
||||||
for (int i = 0; i < delays.size(); i++) {
|
for (Double delay : delays) {
|
||||||
// if-condition to always become true for NaN
|
// if-condition to always become true for NaN
|
||||||
if (!(Math.abs(delays.get(i) - currentDelay) > Math.abs(closest - currentDelay))) {
|
if (!(Math.abs(delay - currentDelay) > Math.abs(closest - currentDelay))) {
|
||||||
closest = delays.get(i);
|
closest = delay;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (!Double.isNaN(closest)) {
|
if (!Double.isNaN(closest)) {
|
||||||
selectedDelay = closest;
|
selectedDelay = closest;
|
||||||
//// None
|
|
||||||
delayBox.setSelectedItem(ThrustCurveMotor.getDelayString(closest, trans.get("TCMotorSelPan.delayBox.None")));
|
delayBox.setSelectedItem(ThrustCurveMotor.getDelayString(closest, trans.get("TCMotorSelPan.delayBox.None")));
|
||||||
} else {
|
} else {
|
||||||
delayBox.setSelectedItem("None");
|
//// None
|
||||||
|
delayBox.setSelectedItem(trans.get("TCMotorSelPan.delayBox.None"));
|
||||||
}
|
}
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
|
|
||||||
selectedDelay = currentDelay;
|
selectedDelay = currentDelay;
|
||||||
//// None
|
|
||||||
delayBox.setSelectedItem(ThrustCurveMotor.getDelayString(currentDelay, trans.get("TCMotorSelPan.delayBox.None")));
|
delayBox.setSelectedItem(ThrustCurveMotor.getDelayString(currentDelay, trans.get("TCMotorSelPan.delayBox.None")));
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user