/* OpenSignalMLDocumentWorker.java created 2007-10-18
*
*/
package org.signalml.app.worker.document;
import java.io.File;
import javax.swing.SwingWorker;
import org.signalml.app.document.signal.SignalMLDocument;
import org.signalml.app.model.document.OpenDocumentDescriptor;
import org.signalml.app.model.document.opensignal.SignalMLDescriptor;
import org.signalml.app.view.common.dialogs.PleaseWaitDialog;
import org.signalml.codec.SignalMLCodec;
import org.signalml.codec.SignalMLCodecReader;
import org.signalml.domain.montage.SignalConfigurer;
/** OpenSignalMLDocumentWorker
*
*
* @author Michal Dobaczewski © 2007-2008 CC Otwarte Systemy Komputerowe Sp. z o.o.
*/
public class OpenSignalMLDocumentWorker extends SwingWorker<SignalMLDocument, Void> {
private SignalMLCodec codec;
private File file;
private PleaseWaitDialog pleaseWaitDialog;
public OpenSignalMLDocumentWorker(OpenDocumentDescriptor descriptor, PleaseWaitDialog pleaseWaitDialog) {
SignalMLDescriptor signalmDescriptor = (SignalMLDescriptor) descriptor.getOpenSignalDescriptor();
this.codec = signalmDescriptor.getCodec();
this.pleaseWaitDialog = pleaseWaitDialog;
this.file = descriptor.getFile();
}
public OpenSignalMLDocumentWorker(SignalMLCodec codec, File file) {
this.codec = codec;
this.file = file;
}
@Override
protected SignalMLDocument doInBackground() throws Exception {
SignalMLCodecReader reader = codec.createReader();
SignalMLDocument signalMLDocument = new SignalMLDocument(reader);
signalMLDocument.setBackingFile(file);
signalMLDocument.openDocument();
return signalMLDocument;
}
@Override
protected void done() {
if (pleaseWaitDialog != null)
pleaseWaitDialog.releaseIfOwnedBy(this);
}
}