/* PreciseSelectionAction.java created 2007-10-05 * */ package org.signalml.app.action.tag; import static org.signalml.app.util.i18n.SvarogI18n._; import java.awt.event.ActionEvent; import org.apache.log4j.Logger; import org.signalml.app.action.AbstractFocusableSignalMLAction; import org.signalml.app.action.selector.SignalPlotFocusSelector; import org.signalml.app.document.TagDocument; import org.signalml.app.view.signal.SignalPlot; import org.signalml.app.view.signal.SignalView; import org.signalml.app.view.tag.TagStyleSelector; import org.signalml.plugin.export.signal.SignalSelection; import org.signalml.plugin.export.signal.SignalSelectionType; import org.signalml.plugin.export.signal.TagStyle; /** PreciseSelectionAction * * * @author Michal Dobaczewski © 2007-2008 CC Otwarte Systemy Komputerowe Sp. z o.o. */ public class TagSelectionAction extends AbstractFocusableSignalMLAction<SignalPlotFocusSelector> { private static final long serialVersionUID = 1L; protected static final Logger logger = Logger.getLogger(TagSelectionAction.class); public TagSelectionAction(SignalPlotFocusSelector signalPlotFocusSelector) { super(signalPlotFocusSelector); setText(_("Tag selection")); setToolTip(_("Tag the selected signal fragment")); } @Override public void actionPerformed(ActionEvent e) { SignalPlot plot = getActionFocusSelector().getActiveSignalPlot(); if (plot == null) { logger.warn("Target plot doesn't exist"); return; } TagDocument tagDocument = plot.getDocument().getActiveTag(); if (tagDocument == null) { logger.warn("Target tag document doesn't exist"); return; } SignalView view = plot.getView(); SignalSelection selection = view.getSignalSelection(plot); if (selection == null) { return; } Object source = e.getSource(); if (!(source instanceof TagStyleSelector)) { logger.warn("Event source is not a tag style selector"); return; } TagStyle style = ((TagStyleSelector) source).getTagStyle(); // if style is null then tags will be erased if (style == null) { plot.eraseTagsFromSelection(tagDocument, selection); } else { plot.tagSelection(tagDocument, style, selection, false); } } }