/* EditSignalMontageAction.java created 2007-09-28 * */ package org.signalml.app.action.montage; import static org.signalml.app.util.i18n.SvarogI18n._; import java.awt.event.ActionEvent; import java.awt.event.KeyEvent; import org.apache.log4j.Logger; import org.signalml.app.action.AbstractFocusableSignalMLAction; import org.signalml.app.action.selector.SignalDocumentFocusSelector; import org.signalml.app.document.signal.SignalDocument; import org.signalml.app.model.montage.MontageDescriptor; import org.signalml.app.view.montage.SignalMontageDialog; /** EditSignalMontageAction * * * @author Michal Dobaczewski © 2007-2008 CC Otwarte Systemy Komputerowe Sp. z o.o. */ public class EditSignalMontageAction extends AbstractFocusableSignalMLAction<SignalDocumentFocusSelector> { private static final long serialVersionUID = 1L; protected static final Logger logger = Logger.getLogger(EditSignalMontageAction.class); private SignalMontageDialog signalMontageDialog; public EditSignalMontageAction(SignalDocumentFocusSelector signalDocumentFocusSelector) { super(signalDocumentFocusSelector); setText(_("Signal montage")); setIconPath("org/signalml/app/icon/montage.png"); setToolTip(_("Change signal montage")); setMnemonic(KeyEvent.VK_M); } @Override public void actionPerformed(ActionEvent e) { logger.debug("Signal montage"); SignalDocument signalDocument = getActionFocusSelector().getActiveSignalDocument(); if (signalDocument == null) { logger.warn("Target document doesn't exist or is not a signal"); return; } MontageDescriptor descriptor = new MontageDescriptor(signalDocument.getMontage(), signalDocument); boolean ok = signalMontageDialog.showDialog(descriptor, true); if (!ok) { return; } signalDocument.setMontage(descriptor.getMontage()); } @Override public void setEnabledAsNeeded() { setEnabled(getActionFocusSelector().getActiveSignalDocument() != null); } public SignalMontageDialog getSignalMontageDialog() { return signalMontageDialog; } public void setSignalMontageDialog(SignalMontageDialog signalMontageDialog) { this.signalMontageDialog = signalMontageDialog; } }