/* ChooseActiveTagAction.java created 2010-12-10
*
*/
package org.signalml.app.action.tag;
import static org.signalml.app.util.i18n.SvarogI18n._;
import java.awt.event.ActionEvent;
import java.awt.event.KeyEvent;
import org.signalml.app.action.AbstractFocusableSignalMLAction;
import org.signalml.app.action.selector.SignalDocumentFocusSelector;
import org.signalml.app.document.signal.SignalDocument;
import org.signalml.app.view.signal.SignalView;
import org.signalml.app.view.signal.popup.ActiveTagPopupDialog;
import org.signalml.plugin.export.view.DocumentView;
/**
* This class is responsible for action evoked when the user wants to change
* the active tag (for example: the user selects an appropriate menu item in
* the main menu). It shows a dialog in which active tag can be chosen.
*
* @author Piotr Szachewicz
*/
public class ChooseActiveTagAction extends AbstractFocusableSignalMLAction<SignalDocumentFocusSelector> {
/**
* Constructor.
* localized message codes
* @param signalDocumentFocusSelector a {@link SignalDocumentFocusSelector}
* used to get the active document.
*/
public ChooseActiveTagAction(SignalDocumentFocusSelector signalDocumentFocusSelector) {
super(signalDocumentFocusSelector);
setText(_("Choose active tag"));
setIconPath("org/signalml/app/icon/activetag.png");
setToolTip(_("Change active tag (the tag that is being edited)"));
setMnemonic(KeyEvent.VK_H);
}
@Override
public void actionPerformed(ActionEvent e) {
DocumentView documentView = getActionFocusSelector().getActiveSignalDocument().getDocumentView();
SignalView signalView = null;
if (documentView instanceof SignalView)
signalView = (SignalView) documentView;
ActiveTagPopupDialog dialog = new ActiveTagPopupDialog(null, true);
dialog.setSignalView(signalView);
dialog.showDialog(null, true);
}
@Override
public void setEnabledAsNeeded() {
SignalDocument signalDocument = getActionFocusSelector().getActiveSignalDocument();
if (!isSignalDocumentOfflineSignalDocument(signalDocument)
|| signalDocument == null
|| signalDocument.getActiveTag() == null)
setEnabled(false);
else
setEnabled(true);
}
}