/*
* This file is part of the OSMembrane project.
* More informations under www.osmembrane.de
*
* The project is licensed under the GNU GENERAL PUBLIC LICENSE 3.0.
* for more details about the license see http://www.osmembrane.de/license/
*
* Source: $HeadURL$ ($Revision$)
* Last changed: $Date$
*/
package de.osmembrane.controller.actions;
import java.awt.event.ActionEvent;
import javax.swing.AbstractAction;
import javax.swing.Action;
import de.osmembrane.model.ModelProxy;
import de.osmembrane.model.pipeline.AbstractFunction;
import de.osmembrane.model.settings.AbstractFunctionPreset;
import de.osmembrane.model.settings.AbstractSettings;
import de.osmembrane.resources.Resource;
import de.osmembrane.tools.I18N;
import de.osmembrane.tools.IconLoader.Size;
import de.osmembrane.view.ViewRegistry;
import de.osmembrane.view.dialogs.FunctionPresetDialog;
import de.osmembrane.view.frames.MainFrame;
import de.osmembrane.view.interfaces.IFunctionPresetDialog;
import de.osmembrane.view.interfaces.IMainFrame;
import de.osmembrane.view.panels.PipelineFunction;
/**
* Action to load saved presets for a specific function.
*
* @author tobias_kuhn
*
*/
public class LoadFunctionPresetAction extends AbstractAction {
private static final long serialVersionUID = 6264271045174747984L;
/**
* Creates a new {@link LoadFunctionPresetAction}
*/
public LoadFunctionPresetAction() {
putValue(
Action.NAME,
I18N.getInstance().getString(
"Controller.Actions.LoadFunctionPreset.Name"));
putValue(
Action.SHORT_DESCRIPTION,
I18N.getInstance().getString(
"Controller.Actions.LoadFunctionPreset.Description"));
putValue(Action.SMALL_ICON, Resource.PROGRAM_ICON.getImageIcon(
"load_pipeline.png", Size.SMALL));
}
@Override
public void actionPerformed(ActionEvent e) {
IMainFrame mainFrame = ViewRegistry.getInstance().getCasted(
MainFrame.class, IMainFrame.class);
Object select = mainFrame.getSelected();
if ((select == null) || !(select instanceof PipelineFunction)) {
return;
}
AbstractFunction function = ((PipelineFunction) select)
.getModelFunction();
AbstractSettings settings = ModelProxy.getInstance().getSettings();
IFunctionPresetDialog fpd = ViewRegistry.getInstance().getCasted(
FunctionPresetDialog.class, IFunctionPresetDialog.class);
do {
AbstractFunctionPreset afp[] = settings
.getAllFunctionPresets(function);
fpd.open(afp);
AbstractFunctionPreset preset = fpd.getSelectedPreset();
if (fpd.loadSelected()) {
preset.loadPreset(function);
} else if (fpd.deleteSelected()) {
settings.deleteFunctionPreset(preset);
}
} while (fpd.deleteSelected());
}
}