import net.sf.openrocket.database.Database;
import net.sf.openrocket.database.DatabaseListener;
+import net.sf.openrocket.document.OpenRocketDocument;
import net.sf.openrocket.gui.dialogs.preset.ComponentPresetChooserDialog;
import net.sf.openrocket.l10n.Translator;
import net.sf.openrocket.logging.LogHelper;
private final Component parent;
private final RocketComponent component;
+ private final OpenRocketDocument document;
private ComponentPreset previousPreset;
private List<ComponentPreset> presets;
- public PresetModel(Component parent, RocketComponent component) {
+ public PresetModel(Component parent, OpenRocketDocument document, RocketComponent component) {
this.parent = parent;
+ this.document = document;
presets = Application.getComponentPresetDao().listForType(component.getPresetType(), true);
this.component = component;
previousPreset = component.getPresetComponent();
log.user("User selected preset item '" + item + "' for component " + component);
if (item == null) {
- // FIXME: What to do?
throw new BugException("item is null");
} else if (item.equals(NONE_SELECTED)) {
component.clearPreset();
}
});
} else {
- // FIXME: Add undo point here
+ document.addUndoPosition("Use Preset " + component.getComponentName());
component.loadPreset((ComponentPreset) item);
}
}
if (component.getPresetType() != null) {
// If the component supports a preset, show the preset selection box.
- presetModel = new PresetModel(this, component);
+ presetModel = new PresetModel(this, document, component);
((ComponentPresetDatabase) Application.getComponentPresetDao()).addDatabaseListener(presetModel);
presetComboBox = new JComboBox(presetModel);
presetComboBox.setEditable(false);