/* WorkspaceBook.java created 2008-02-23
*
*/
package org.signalml.app.config.workspace;
import java.io.IOException;
import java.util.Date;
import org.apache.log4j.Logger;
import org.signalml.app.document.BookDocument;
import org.signalml.app.document.ManagedDocumentType;
import org.signalml.app.document.mrud.MRUDEntry;
import org.signalml.app.view.book.BookPlot;
import org.signalml.app.view.book.BookView;
import org.signalml.domain.book.filter.AtomFilterChain;
import org.signalml.plugin.export.SignalMLException;
import com.thoughtworks.xstream.annotations.XStreamAlias;
/** WorkspaceBook
*
*
* @author Michal Dobaczewski © 2007-2008 CC Otwarte Systemy Komputerowe Sp. z o.o.
*/
@XStreamAlias("workspacebook")
public class WorkspaceBook extends WorkspaceDocument {
protected static final Logger logger = Logger.getLogger(WorkspaceBook.class);
private AtomFilterChain filterChain;
private int currentSegment;
private int currentChannel;
private WorkspaceBookPlot plot;
protected WorkspaceBook() {
super();
}
public WorkspaceBook(BookDocument document) {
MRUDEntry mrud = new MRUDEntry(ManagedDocumentType.BOOK, document.getClass(), document.getBackingFile().getAbsolutePath());
mrud.setLastTimeOpened(new Date());
mrudEntry = mrud;
BookView view = (BookView) document.getDocumentView();
BookPlot bookPlot = view.getPlot();
filterChain = document.getFilterChain();
currentSegment = view.getCurrentSegment();
currentChannel = view.getCurrentChannel();
plot = new WorkspaceBookPlot(bookPlot);
}
public void configureBook(BookDocument document) throws IOException, SignalMLException {
BookView view = (BookView) document.getDocumentView();
BookPlot bookPlot = view.getPlot();
if (filterChain != null) {
document.setFilterChain(filterChain);
}
view.setCurrentSegment(currentSegment);
view.setCurrentChannel(currentChannel);
plot.configurePlot(bookPlot);
}
}