/* StopMonitorRecordingAction.java created 2010-10-29
*
*/
package org.signalml.app.action.document.monitor;
import static org.signalml.app.util.i18n.SvarogI18n._;
import java.io.IOException;
import java.util.logging.Level;
import java.awt.event.ActionEvent;
import java.awt.event.KeyEvent;
import org.apache.log4j.Logger;
import org.signalml.app.action.selector.SignalDocumentFocusSelector;
import org.signalml.app.document.MonitorSignalDocument;
import org.signalml.app.document.signal.SignalDocument;
/**
* This class is responsible for actions regarding the menu item which stops the recording of the monitor.
*
* @author Piotr Szachewicz
*/
public class StopMonitorRecordingAction extends MonitorRecordingAction {
/**
* Logger to save history of execution at.
*/
protected static final Logger logger = Logger.getLogger(StopMonitorRecordingAction.class);
/**
* Constructor.
*
* @param signalDocumentFocusSelector a {@link SignalDocumentFocusSelector} used to detect
* which document is active.
*/
public StopMonitorRecordingAction(SignalDocumentFocusSelector signalDocumentFocusSelector) {
super(signalDocumentFocusSelector);
setIconPath("org/signalml/app/icon/stop-recording.png");
setText(_("Stop monitor recording"));
setToolTip(_("Stop to record signal and tags to a file"));
setMnemonic(KeyEvent.VK_P);
}
/**
* Stops the recording for the currently open document (if it is a {@link MonitorSignalDocument}).
*
* @param ev represents the event that has happened
*/
@Override
public void actionPerformed(ActionEvent ev) {
SignalDocument signalDocument = getActionFocusSelector().getActiveSignalDocument();
if ((signalDocument != null) && (signalDocument instanceof MonitorSignalDocument)) {
MonitorSignalDocument monitorSignalDocument = (MonitorSignalDocument) signalDocument;
try {
monitorSignalDocument.stopMonitorRecording();
} catch (IOException ex) {
java.util.logging.Logger.getLogger(StopMonitorRecordingAction.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
/**
* Decides to enable/disable the menu item to which this action is connected to according
* to the state of the recorder.
*/
@Override
public void setEnabledAsNeeded() {
SignalDocument signalDocument = getActionFocusSelector().getActiveSignalDocument();
if ((signalDocument != null) && (signalDocument instanceof MonitorSignalDocument)) {
if (((MonitorSignalDocument) signalDocument).isRecording()) {
setEnabled(true);
} else {
setEnabled(false);
}
} else {
setEnabled(false);
}
}
}