/* BookAverageMethodDescriptor.java created 2007-10-22 * */ package org.signalml.app.method.bookaverage; import org.signalml.app.document.BookDocument; import static org.signalml.app.util.i18n.SvarogI18n._; import org.signalml.app.method.ApplicationMethodDescriptor; import org.signalml.app.method.ApplicationMethodManager; import org.signalml.app.method.MethodPresetManager; import org.signalml.app.view.book.BookView; import org.signalml.app.view.common.dialogs.OptionPane; import org.signalml.domain.book.StandardBook; import org.signalml.method.bookaverage.BookAverageData; import org.signalml.method.bookaverage.BookAverageMethod; import org.signalml.plugin.export.method.BaseMethodData; import org.signalml.plugin.export.signal.Document; /** * BookAverageMethodDescriptor * * @author Michal Dobaczewski © 2007-2008 CC Otwarte Systemy Komputerowe Sp. z o.o. * (+ fixed by) piotr@develancer.pl */ public class BookAverageMethodDescriptor implements ApplicationMethodDescriptor { public static final String RUN_METHOD_STRING = _("Average books"); public static final String ICON_PATH = "org/signalml/app/icon/runmethod.png"; private BookAverageMethod method; private BookAverageMethodConfigurer configurer; private BookAverageMethodConsumer consumer; public BookAverageMethodDescriptor(BookAverageMethod method) { this.method = method; } @Override public BookAverageMethod getMethod() { return method; } @Override public String getName() { return RUN_METHOD_STRING; } @Override public String getIconPath() { return ICON_PATH; } @Override public MethodPresetManager getPresetManager(ApplicationMethodManager methodManager, boolean existingOnly) { return null; } @Override public BookAverageMethodConfigurer getConfigurer(ApplicationMethodManager methodManager) { if (configurer == null) { configurer = new BookAverageMethodConfigurer(); configurer.initialize(methodManager); } return configurer; } @Override public BookAverageMethodConsumer getConsumer(ApplicationMethodManager methodManager) { if (consumer == null) { consumer = new BookAverageMethodConsumer(); } return consumer; } @Override public BaseMethodData createData(ApplicationMethodManager methodManager) { Document document = methodManager.getActionFocusManager().getActiveDocument(); if (!(document instanceof BookDocument)) { OptionPane.showNoActiveBook(methodManager.getDialogParent()); return null; } BookDocument bookDocument = (BookDocument) document; BookView bookView = (BookView) bookDocument.getDocumentView(); StandardBook book = bookDocument.getBook(); if (book.getSegmentCount() == 0 || book.getSegmentAt(0).length == 0) { OptionPane.showError(methodManager.getDialogParent(), "Book contains no valid segments!"); return null; } int segmentCount = book.getSegmentCount(); int currentChannel = bookView.getCurrentChannel(); BookAverageData data = new BookAverageData(); data.setBook(book); data.setPalette(bookView.getPlot().getPalette()); data.setScaleType(bookView.getPlot().getScaleType()); data.setMinSegment(0); data.setMaxSegment(segmentCount - 1); data.setMinFrequency(0.0); data.setMaxFrequency(book.getSamplingFrequency() / 2); data.setMinPosition(0.0); data.setMaxPosition(book.getSegmentAt(0)[0].getSegmentTimeLength()); data.setWidth(400); data.setHeight(400); data.addChannel(currentChannel); return data; } }