/* SignalFFTSettingsPopupDialog.java created 2007-12-17
*
*/
package org.signalml.plugin.fftsignaltool.dialogs;
import java.awt.Window;
import javax.swing.JComponent;
import org.signalml.app.model.components.validation.ValidationErrors;
import org.signalml.plugin.export.SignalMLException;
import org.signalml.plugin.export.view.AbstractPopupDialog;
import org.signalml.plugin.fftsignaltool.SignalFFTSettings;
import org.signalml.plugin.fftsignaltool.SignalFFTTool;
import org.springframework.validation.Errors;
/**
* Dialog which allows to select the parameters of the FFT.
* Contains only {@link SignalFFTSettingsPanel}, where these parameters are
* described.
* <p>
* The model for this dialog is of type {@link SignalFFTTool} and the
* parameters are stored in the {@link SignalFFTSettings settings}
* {@link SignalFFTTool#getSettings() obtained} from it.
*
* @author Michal Dobaczewski © 2007-2008 CC Otwarte Systemy Komputerowe
* Sp. z o.o.
*/
public class SignalFFTSettingsPopupDialog extends AbstractPopupDialog {
/**
* the serialization constant
*/
private static final long serialVersionUID = 1L;
/**
* the {@link SignalFFTSettingsPanel panel} with the actual contents of
* this dialog
*/
private SignalFFTSettingsPanel signalFFTSettingsPanel;
/**
* Constructor. Sets message source, parent window and if this dialog
* blocks top-level windows.
* @param w the parent window or null if there is no parent
* @param isModal true, dialog blocks top-level windows, false otherwise
*/
public SignalFFTSettingsPopupDialog(
Window w, boolean isModal) {
super(w, isModal);
}
/**
* Creates the interface for this dialog.
* This interface contains only {@link SignalFFTSettingsPanel}.
*/
@Override
public JComponent createInterface() {
signalFFTSettingsPanel = new SignalFFTSettingsPanel(true);
return signalFFTSettingsPanel;
}
/**
* {@link SignalFFTSettingsPanel#fillPanelFromModel(org.signalml.plugin.
* fftsignaltool.SignalFFTSettings) Fills} the {@link
* SignalFFTSettingsPanel} from the {@link SignalFFTTool model}.
*/
@Override
public void fillDialogFromModel(Object model) throws SignalMLException {
SignalFFTTool tool = (SignalFFTTool) model;
signalFFTSettingsPanel.fillPanelFromModel(tool.getSettings());
}
/**
* {@link SignalFFTSettingsPanel#fillModelFromPanel(org.signalml.plugin.
* fftsignaltool.SignalFFTSettings) Fills} the {@link SignalFFTTool model}
* from the {@link SignalFFTSettingsPanel}.
*/
@Override
public void fillModelFromDialog(Object model) throws SignalMLException {
SignalFFTTool tool = (SignalFFTTool) model;
signalFFTSettingsPanel.fillModelFromPanel(tool.getSettings());
}
/**
* Validates this dialog.
* This dialog is valid if {@link SignalFFTSettingsPanel} is {@link
* SignalFFTSettingsPanel#validatePanel(Errors) valid}.
*/
@Override
public void validateDialog(Object model, ValidationErrors errors)
throws SignalMLException {
super.validateDialog(model, errors);
signalFFTSettingsPanel.validatePanel(errors);
}
/**
* The model for this dialog must be of type {@link SignalFFTTool}
*/
@Override
public boolean supportsModelClass(Class<?> clazz) {
return SignalFFTTool.class.isAssignableFrom(clazz);
}
/**
* @return false
*/
@Override
public boolean isControlPanelEquipped() {
return false;
}
/**
* @return false
*/
@Override
public boolean isCancellable() {
return false;
}
/**
* @return true
*/
@Override
public boolean isFormClickApproving() {
return true;
}
}