/* NewArtifactToolConfigDialog.java created 2008-02-08
*
*/
package org.signalml.plugin.newartifact.ui;
import static org.signalml.plugin.i18n.PluginI18n._;
import java.awt.Window;
import java.io.File;
import javax.swing.JComponent;
import org.signalml.app.model.components.validation.ValidationErrors;
import org.signalml.app.util.IconUtils;
import org.signalml.plugin.export.SignalMLException;
import org.signalml.plugin.export.view.AbstractPluginDialog;
import org.signalml.plugin.export.view.FileChooser;
import org.signalml.plugin.newartifact.NewArtifactPlugin;
import org.signalml.plugin.newartifact.data.NewArtifactConfiguration;
/**
* NewArtifactToolConfigDialog
*
*
* @author Michal Dobaczewski © 2007-2008 CC Otwarte Systemy Komputerowe
* Sp. z o.o.
*/
public class NewArtifactToolConfigDialog extends AbstractPluginDialog {
private static final long serialVersionUID = 1L;
private FileChooser fileChooser;
private NewArtifactToolConfigPanel configPanel;
public NewArtifactToolConfigDialog() {
super();
}
public NewArtifactToolConfigDialog(Window w, boolean isModal) {
super(w, isModal);
}
@Override
protected void initialize() {
setTitle(_("Artifact configuration"));
setIconImage(IconUtils.loadClassPathImage(NewArtifactPlugin.iconPath));
setResizable(false);
super.initialize();
}
@Override
public JComponent createInterface() {
return getConfigPanel();
}
public NewArtifactToolConfigPanel getConfigPanel() {
if (configPanel == null) {
configPanel = new NewArtifactToolConfigPanel(fileChooser);
}
return configPanel;
}
@Override
public void fillDialogFromModel(Object model) throws SignalMLException {
getConfigPanel().fillPanelFromModel((NewArtifactConfiguration) model);
}
@Override
public void fillModelFromDialog(Object model) throws SignalMLException {
getConfigPanel().fillModelFromPanel((NewArtifactConfiguration) model);
}
@Override
public void validateDialog(Object model, ValidationErrors errors)
throws SignalMLException {
super.validateDialog(model, errors);
getConfigPanel().validatePanel(errors);
if (!errors.hasErrors()) {
File file = getConfigPanel().getWorkingDirectoryPanel()
.getDirectory();
if (file == null || !file.exists() || !file.canWrite()) {
errors.addError(_("Working directory not set or unusable"));
}
}
}
@Override
public boolean supportsModelClass(Class<?> clazz) {
return NewArtifactConfiguration.class.isAssignableFrom(clazz);
}
public FileChooser getFileChooser() {
return fileChooser;
}
public void setFileChooser(FileChooser fileChooser) {
this.fileChooser = fileChooser;
}
}