/* ShowAtomTableAction.java created 2008-03-04 * */ package org.signalml.app.action.book; import static org.signalml.app.util.i18n.SvarogI18n._; import java.awt.event.ActionEvent; import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; import org.apache.log4j.Logger; import org.signalml.app.action.AbstractFocusableSignalMLAction; import org.signalml.app.action.selector.BookDocumentFocusSelector; import org.signalml.app.document.BookDocument; import org.signalml.app.view.book.AtomTableDialog; import org.signalml.app.view.book.BookView; /** ShowAtomTableAction * * * @author Michal Dobaczewski © 2007-2008 CC Otwarte Systemy Komputerowe Sp. z o.o. */ public class ShowAtomTableAction extends AbstractFocusableSignalMLAction<BookDocumentFocusSelector> implements PropertyChangeListener { private static final long serialVersionUID = 1L; protected static final Logger logger = Logger.getLogger(ShowAtomTableAction.class); private AtomTableDialog atomTableDialog; public ShowAtomTableAction(BookDocumentFocusSelector bookDocumentFocusSelector) { super(bookDocumentFocusSelector); setText(_("Show atom table")); setIconPath("org/signalml/app/icon/atomtable.png"); setToolTip(_("Show segment's atoms in a table")); } @Override public void actionPerformed(ActionEvent e) { BookDocument bookDocument = getActionFocusSelector().getActiveBookDocument(); if (bookDocument == null) { logger.warn("Target document doesn't exist or is not a book"); return; } BookView bookView = (BookView) bookDocument.getDocumentView(); atomTableDialog.showDialog(bookView, true); bookView.getPlot().repaint(); } @Override public void setEnabledAsNeeded() { boolean enabled = false; BookDocument activeBookDocument = getActionFocusSelector().getActiveBookDocument(); if (activeBookDocument != null) { enabled = true; } setEnabled(enabled); } public AtomTableDialog getAtomTableDialog() { return atomTableDialog; } public void setAtomTableDialog(AtomTableDialog atomTableDialog) { this.atomTableDialog = atomTableDialog; } @Override public void propertyChange(PropertyChangeEvent evt) { setEnabledAsNeeded(); } }