/* SignalParametersDialog.java created 2007-09-11 * */ package org.signalml.app.view.signal; import static org.signalml.app.util.i18n.SvarogI18n._; import java.awt.Window; import java.io.IOException; import java.net.URL; import javax.swing.JComponent; import org.omg.CORBA.Request; import org.signalml.app.model.components.validation.ValidationErrors; import org.signalml.app.model.document.opensignal.elements.SignalParameters; import org.signalml.app.model.signal.PagingParameterDescriptor; import org.signalml.app.util.IconUtils; import org.signalml.app.view.common.dialogs.AbstractDialog; import org.signalml.app.view.preferences.SignalParametersPanel; import org.signalml.plugin.export.SignalMLException; import org.springframework.core.io.ClassPathResource; import org.springframework.validation.Errors; /** * Dialog which displays the parameters of the signal and, if such option is * set to edit them. * For details see - {@link SignalParametersPanel}. * * @author Michal Dobaczewski © 2007-2008 CC Otwarte Systemy Komputerowe Sp. z o.o. */ public class SignalParametersDialog extends AbstractDialog { private static final long serialVersionUID = 1L; /** * the {@link SignalParametersPanel panel} which displays (and allows to * change) the parameters of the signal */ private SignalParametersPanel panel; /** * the URL to the help for this dialog */ private URL contextHelpURL = null; /** * Constructor. Sets message source, parent window and if this dialog * blocks top-level windows. * @param f the parent window or null if there is no parent * @param isModal true, dialog blocks top-level windows, false otherwise */ public SignalParametersDialog(Window f, boolean isModal) { super(f, isModal); } /** * Sets the title, the icon and that this panel can not be resized and * calls the {@link AbstractDialog#initialize() initialization} in parent. */ @Override protected void initialize() { setTitle(_("Signal parameters")); setIconImage(IconUtils.loadClassPathImage("org/signalml/app/icon/signalparameters.png")); setResizable(false); super.initialize(); } /** * Creates the interface for this dialog with only one panel - {@link * SignalParametersPanel}. */ @Override public JComponent createInterface() { panel = new SignalParametersPanel(); return panel; } /** * Fills the sub-panels of this dialog using the given {@link SignalParameters model} * ({@link RequiredSignalParametersPanel#fillPanelFromModel(SignalParameters) RequiredSignalParametersPanel} * and {@link PagingParametersPanel#fillPanelFromModel(PagingParameterDescriptor) PagingParametersPanel}). */ @Override public void fillDialogFromModel(Object model) throws SignalMLException { SignalParameters spd = (SignalParameters) model; panel.getRequiredSignalParamersPanel().fillPanelFromModel(spd); panel.getPagingSignalParamersPanel().fillPanelFromModel(spd); } /** * Fills the the given {@link SignalParameters model} from * sub-panels * ({@link RequiredSignalParametersPanel#fillPanelFromModel(SignalParameters) * RequiredSignalParametersPanel} and * {@link PagingParametersPanel#fillPanelFromModel(PagingParameterDescriptor) PagingParametersPanel}). */ @Override public void fillModelFromDialog(Object model) throws SignalMLException { SignalParameters spd = (SignalParameters) model; panel.getRequiredSignalParamersPanel().fillModelFromPanel(spd); panel.getPagingSignalParamersPanel().fillModelFromPanel(spd); } /** * Validates this dialog. This dialog is valid if sub-panels are valid * ({@link RequiredSignalParametersPanel#validatePanel(SignalParameters, Errors) * RequiredSignalParametersPanel} * and {@link PagingParametersPanel#validatePanel(Errors) * PagingParametersPanel}). */ @Override public void validateDialog(Object model, ValidationErrors errors) throws SignalMLException { SignalParameters spd = (SignalParameters) model; panel.getRequiredSignalParamersPanel().validatePanel(spd, errors); panel.getPagingSignalParamersPanel().validatePanel(errors); } /** * The model for this dialog must be of type {@link SignalParameters}. */ @Override public boolean supportsModelClass(Class<?> clazz) { return SignalParameters.class.isAssignableFrom(clazz); } @Override protected URL getContextHelpURL() { if (contextHelpURL == null) { try { contextHelpURL = (new ClassPathResource("org/signalml/help/contents.html")).getURL(); contextHelpURL = new URL(contextHelpURL.toExternalForm() + "#sigparams"); } catch (IOException ex) { logger.error("Failed to get help URL", ex); } } return contextHelpURL; } }