import net.miginfocom.swing.MigLayout;
import net.sf.openrocket.document.OpenRocketDocument;
import net.sf.openrocket.gui.main.BasicFrame;
-import net.sf.openrocket.gui.main.MotorChooserDialog;
import net.sf.openrocket.rocketcomponent.Motor;
import net.sf.openrocket.rocketcomponent.MotorMount;
import net.sf.openrocket.rocketcomponent.Rocket;
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--;
}
}
});
GUIUtil.installEscapeCloseOperation(this);
GUIUtil.setDefaultButton(close);
+ this.setLocationByPlatform(true);
// Undo description
final OpenRocketDocument document = BasicFrame.findDocument(rocket);
}
- 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);
return;
MotorChooserDialog dialog = new MotorChooserDialog(currentMount.getMotor(currentID),
- currentMount.getMotorDelay(currentID), currentMount.getMotorMountDiameter());
+ currentMount.getMotorDelay(currentID), currentMount.getMotorMountDiameter(),
+ this);
dialog.setVisible(true);
Motor m = dialog.getSelectedMotor();
double d = dialog.getSelectedDelay();