private String currentID = null;
private MotorMount currentMount = null;
+ // Positive when user is modifying configuration name
+ private int configurationNameModification = 0;
+
public EditMotorConfigurationDialog(final Rocket rocket, Window parent) {
super(parent, "Edit motor configurations");
update();
}
private void update() {
+ if (configurationNameModification != 0)
+ return;
+
String text = configurationNameField.getText();
if (currentID != null) {
+ configurationNameModification++;
rocket.setMotorConfigurationName(currentID, text);
int row = configurationTable.getSelectedRow();
configurationTableModel.fireTableCellUpdated(row, 0);
updateEnabled();
+ configurationNameModification--;
}
}
});
}
- configurationNameField.setEnabled(currentID != null);
- if (currentID == null) {
- configurationNameField.setText("");
- } else {
- configurationNameField.setText(rocket.getMotorConfigurationName(currentID));
+ if (configurationNameModification == 0) {
+ // Don't update name field when user is modifying it
+ configurationNameModification++;
+
+ configurationNameField.setEnabled(currentID != null);
+ if (currentID == null) {
+ configurationNameField.setText("");
+ } else {
+ configurationNameField.setText(rocket.getMotorConfigurationName(currentID));
+ }
+
+ configurationNameModification--;
}
removeConfButton.setEnabled(currentID != null);
selectMotorButton.setEnabled(currentMount != null && currentID != null);