/* ArtifactExclusionDialog.java created 2007-11-02 * */ package org.signalml.plugin.newartifact.ui; import static org.signalml.plugin.i18n.PluginI18n._; import java.awt.Window; import javax.swing.JComponent; import org.signalml.app.util.IconUtils; import org.signalml.domain.montage.SourceMontage; import org.signalml.plugin.export.SignalMLException; import org.signalml.plugin.newartifact.data.NewArtifactExclusionDescriptor; import org.signalml.plugin.newartifact.data.NewArtifactType; /** * ArtifactExclusionDialog * * * @author Michal Dobaczewski © 2007-2008 CC Otwarte Systemy Komputerowe * Sp. z o.o. (dialog design based on work by Hubert Klekowicz) */ public class NewArtifactExclusionDialog extends org.signalml.plugin.export.view.AbstractPluginDialog { private static final long serialVersionUID = 1L; private NewArtifactExclusionPanel artifactExclusionPanel; private int[][] currentExclusion; private NewArtifactType[] artifactTypes = NewArtifactType.values(); public NewArtifactExclusionDialog() { super(); } public NewArtifactExclusionDialog( Window w, boolean isModal) { super(w, isModal); } @Override protected void initialize() { setTitle(_("Exclusion")); setIconImage(IconUtils .loadClassPathImage("org/signalml/app/icon/editexclusion.png")); setResizable(false); super.initialize(); } @Override public JComponent createInterface() { artifactExclusionPanel = new NewArtifactExclusionPanel(); return artifactExclusionPanel; } @Override public void fillDialogFromModel(Object model) throws SignalMLException { NewArtifactExclusionDescriptor descriptor = (NewArtifactExclusionDescriptor) model; SourceMontage montage = descriptor.getMontage(); int channelCount = montage.getSourceChannelCount(); int[][] exclusion = descriptor.getExclusion(); currentExclusion = new int[artifactTypes.length][channelCount]; for (int i = 0; i < Math.min(artifactTypes.length, exclusion.length); i++) { for (int e = 0; e < Math.min(channelCount, exclusion[i].length); e++) { currentExclusion[i][e] = exclusion[i][e]; } } artifactExclusionPanel.getArtifactExclusionTable().getModel() .setExcludedChannelsAndMontage(currentExclusion, montage); } @Override public void fillModelFromDialog(Object model) throws SignalMLException { NewArtifactExclusionDescriptor descriptor = (NewArtifactExclusionDescriptor) model; SourceMontage montage = descriptor.getMontage(); int channelCount = montage.getSourceChannelCount(); int[][] exclusion = descriptor.getExclusion(); for (int i = 0; i < Math.min(artifactTypes.length, exclusion.length); i++) { for (int e = 0; e < Math.min(channelCount, exclusion[i].length); e++) { exclusion[i][e] = currentExclusion[i][e]; } } } @Override public boolean supportsModelClass(Class<?> clazz) { return NewArtifactExclusionDescriptor.class.isAssignableFrom(clazz); } }