/* AbstractFocusableSignalMLAction.java created 2007-10-15
*
*/
package org.signalml.app.action;
import org.signalml.app.action.selector.ActionFocusEvent;
import org.signalml.app.action.selector.ActionFocusListener;
import org.signalml.app.action.selector.ActionFocusSelector;
import org.signalml.app.document.MonitorSignalDocument;
import org.signalml.app.document.TagDocument;
import org.signalml.app.document.signal.SignalDocument;
import org.signalml.domain.tag.StyledMonitorTagSet;
import org.signalml.plugin.export.view.AbstractSignalMLAction;
/** AbstractFocusableSignalMLAction
*
*
* @author Michal Dobaczewski © 2007-2008 CC Otwarte Systemy Komputerowe Sp. z o.o.
*/
public abstract class AbstractFocusableSignalMLAction<T extends ActionFocusSelector> extends AbstractSignalMLAction implements ActionFocusListener {
static final long serialVersionUID = 1L;
private T actionFocusSelector;
protected AbstractFocusableSignalMLAction(T actionFocusSelector) {
super();
if (actionFocusSelector == null) {
throw new NullPointerException("No action focus selector");
}
this.actionFocusSelector = actionFocusSelector;
actionFocusSelector.addActionFocusListener(this);
setEnabledAsNeeded();
}
public T getActionFocusSelector() {
return actionFocusSelector;
}
protected void setActionFocusSelector(T actionFocusSelector) {
if (actionFocusSelector == null) {
throw new NullPointerException("No action focus selector");
}
if (this.actionFocusSelector != actionFocusSelector) {
this.actionFocusSelector = actionFocusSelector;
setEnabledAsNeeded();
}
}
@Override
public void actionFocusChanged(ActionFocusEvent e) {
setEnabledAsNeeded();
}
protected boolean isSignalDocumentOfflineSignalDocument(SignalDocument signalDocument) {
return signalDocument != null && !(signalDocument instanceof MonitorSignalDocument);
}
protected boolean isTagDocumentAMonitorTagDocument(TagDocument tagDocument) {
return tagDocument != null && tagDocument.getTagSet() instanceof StyledMonitorTagSet;
}
}