/* EditTagAnnotationAction.java created 2007-10-23 * */ 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.TagFocusSelector; import org.signalml.app.document.TagDocument; import org.signalml.app.document.signal.SignalDocument; import org.signalml.app.view.signal.PositionedTag; import org.signalml.app.view.tag.EditTagAnnotationDialog; import org.signalml.domain.tag.StyledTagSet; /** EditTagAnnotationAction * * * @author Michal Dobaczewski © 2007-2008 CC Otwarte Systemy Komputerowe Sp. z o.o. */ public class EditTagAnnotationAction extends AbstractFocusableSignalMLAction<TagFocusSelector> { private static final long serialVersionUID = 1L; protected static final Logger logger = Logger.getLogger(EditTagAnnotationAction.class); private EditTagAnnotationDialog editTagAnnotationDialog; public EditTagAnnotationAction(TagFocusSelector tagFocusSelector) { super(tagFocusSelector); setText(_("Annotate tag")); setToolTip(_("Edit tag annotation (Ctrl-A)")); setIconPath("org/signalml/app/icon/editannotation.png"); } @Override public void actionPerformed(ActionEvent e) { TagFocusSelector tagFocusSelector = getActionFocusSelector(); SignalDocument signalDocument = tagFocusSelector.getActiveSignalDocument(); if (signalDocument == null) { return; } PositionedTag positionedTag = tagFocusSelector.getActiveTag(); if (positionedTag == null) { logger.warn("Target tag doesn't exist"); return; } TagDocument tagDocument = signalDocument.getTagDocuments().get(positionedTag.getTagPositionIndex()); boolean ok = editTagAnnotationDialog.showDialog(positionedTag.getTag(), true); if (!ok) { return; } StyledTagSet tagSet = tagDocument.getTagSet(); tagSet.editTag(positionedTag.getTag()); tagDocument.invalidate(); } @Override public void setEnabledAsNeeded() { setEnabled(getActionFocusSelector().getActiveTag() != null); } public EditTagAnnotationDialog getEditTagAnnotationDialog() { return editTagAnnotationDialog; } public void setEditTagAnnotationDialog(EditTagAnnotationDialog editTagAnnotationDialog) { this.editTagAnnotationDialog = editTagAnnotationDialog; } }