/* SnapToPageAction.java created 2007-12-16
*
*/
package org.signalml.app.action;
import static org.signalml.app.util.i18n.SvarogI18n._;
import java.awt.ItemSelectable;
import java.awt.event.ActionEvent;
import org.apache.log4j.Logger;
import org.signalml.app.action.selector.SignalDocumentFocusSelector;
import org.signalml.app.document.signal.SignalDocument;
import org.signalml.app.view.signal.SignalView;
/** SnapToPageAction
*
*
* @author Michal Dobaczewski © 2007-2008 CC Otwarte Systemy Komputerowe Sp. z o.o.
*/
public class SnapToPageAction extends AbstractFocusableSignalMLAction<SignalDocumentFocusSelector> {
private static final long serialVersionUID = 1L;
protected static final Logger logger = Logger.getLogger(SnapToPageAction.class);
public SnapToPageAction(SignalDocumentFocusSelector signalDocumentFocusSelector) {
super(signalDocumentFocusSelector);
setText(_("Snap page to view"));
setIconPath("org/signalml/app/icon/snaptopage.png");
setToolTip(_("Resize time scale so that exactly one page fits in the view & align view on page boundary"));
}
@Override
public void actionPerformed(ActionEvent ev) {
logger.debug("Snap to page");
SignalDocument signalDocument = getActionFocusSelector().getActiveSignalDocument();
if (signalDocument == null) {
logger.warn("Target document doesn't exist or is not a signal");
return;
}
SignalView view = (SignalView) signalDocument.getDocumentView();
ItemSelectable button = (ItemSelectable) ev.getSource();
Object[] selectedObjects = button.getSelectedObjects();
boolean selected = (selectedObjects != null && selectedObjects.length != 0);
putValue(SELECTED_KEY, new Boolean(selected));
view.setSnapToPageMode(selected);
}
@Override
public void setEnabledAsNeeded() {
setEnabled(getActionFocusSelector().getActiveSignalDocument() != null);
}
}