/* SignalMontageDialog.java created 2007-09-11
*
*/
package org.signalml.app.view.montage;
import static org.signalml.app.util.i18n.SvarogI18n._;
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.Window;
import java.io.IOException;
import java.net.URL;
import javax.swing.JComponent;
import javax.swing.JPanel;
import org.signalml.app.model.components.validation.ValidationErrors;
import org.signalml.app.model.montage.MontageDescriptor;
import org.signalml.app.util.IconUtils;
import org.signalml.app.view.common.dialogs.AbstractDialog;
import org.signalml.app.view.workspace.ViewerElementManager;
import org.signalml.plugin.export.SignalMLException;
import org.signalml.util.SvarogConstants;
import org.springframework.core.io.ClassPathResource;
/** SignalMontageDialog
*
*
* @author Michal Dobaczewski © 2007-2008 CC Otwarte Systemy Komputerowe Sp. z o.o.
*/
public class SignalMontageDialog extends AbstractDialog {
private static final long serialVersionUID = 1L;
private ViewerElementManager viewerElementManager;
private SignalMontagePanel signalMontagePanel;
private URL contextHelpURL = null;
public SignalMontageDialog(ViewerElementManager viewerElementManager,
Window f, boolean isModal) {
super(f, isModal);
this.viewerElementManager = viewerElementManager;
}
@Override
protected void initialize() {
setTitle(_("Signal montage"));
setIconImage(IconUtils.loadClassPathImage("org/signalml/app/icon/montage.png"));
setPreferredSize(SvarogConstants.MIN_ASSUMED_DESKTOP_SIZE);
super.initialize();
setMinimumSize(new Dimension(800, 600));
}
@Override
public JComponent createInterface() {
JPanel interfacePanel = new JPanel(new BorderLayout());
interfacePanel.add(getSignalMontagePanel(), BorderLayout.CENTER);
return interfacePanel;
}
public SignalMontagePanel getSignalMontagePanel() {
if (signalMontagePanel == null)
signalMontagePanel = new SignalMontagePanel(viewerElementManager.getFileChooser());
return signalMontagePanel;
}
@Override
public void fillDialogFromModel(Object model) throws SignalMLException {
getSignalMontagePanel().fillPanelFromModel(model);
}
@Override
public void fillModelFromDialog(Object model) throws SignalMLException {
getSignalMontagePanel().fillModelFromPanel(model);
}
@Override
public void validateDialog(Object model, ValidationErrors errors) throws SignalMLException {
getSignalMontagePanel().validate(model, errors);
}
@Override
protected void onDialogClose() {
super.onDialogClose();
getSignalMontagePanel().setMontageToPanels(null);
}
@Override
public boolean supportsModelClass(Class<?> clazz) {
return MontageDescriptor.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() + "#montage");
} catch (IOException ex) {
logger.error("Failed to get help URL", ex);
}
}
return contextHelpURL;
}
}