/* OpenMRUDAction.java created 2007-10-15 * */ package org.signalml.app.action.document; import static org.signalml.app.util.i18n.SvarogI18n._; import java.awt.Window; import java.awt.event.ActionEvent; import java.io.IOException; import multiplexer.jmx.client.ConnectException; import org.apache.log4j.Logger; import org.signalml.app.action.AbstractFocusableSignalMLAction; import org.signalml.app.action.selector.MRUDFocusSelector; import org.signalml.app.document.DocumentFlowIntegrator; import org.signalml.app.document.mrud.MRUDEntry; import org.signalml.app.view.common.dialogs.errors.Dialogs; import org.signalml.plugin.export.SignalMLException; /** OpenMRUDAction * * * @author Michal Dobaczewski © 2007-2008 CC Otwarte Systemy Komputerowe Sp. z o.o. */ public class OpenMRUDAction extends AbstractFocusableSignalMLAction<MRUDFocusSelector> { private static final long serialVersionUID = 1L; protected static final Logger logger = Logger.getLogger(OpenMRUDAction.class); private DocumentFlowIntegrator documentFlowIntegrator; public OpenMRUDAction(MRUDFocusSelector mrudFocusSelector) { super(mrudFocusSelector); setText(_("Open")); setIconPath("org/signalml/app/icon/fileopen.png"); setToolTip(_("Open recently used document")); } @Override public void actionPerformed(ActionEvent ev) { logger.debug("Open focused MRUD"); MRUDEntry entry = getActionFocusSelector().getActiveMRUDEntry(); if (entry == null) { return; } try { documentFlowIntegrator.openMRUDEntry(entry); } catch (SignalMLException ex) { logger.error("Failed to open mrud", ex); Dialogs.showExceptionDialog((Window) null, ex); return; } catch (IOException ex) { logger.error("Failed to open mrud - i/o exception", ex); Dialogs.showExceptionDialog((Window) null, ex); return; } catch (ConnectException ex) { logger.error("Failed to open mrud - connection exception", ex); Dialogs.showExceptionDialog((Window) null, ex); return; } } @Override public void setEnabledAsNeeded() { setEnabled(getActionFocusSelector().getActiveMRUDEntry() != null); } public DocumentFlowIntegrator getDocumentFlowIntegrator() { return documentFlowIntegrator; } public void setDocumentFlowIntegrator(DocumentFlowIntegrator documentFlowIntegrator) { this.documentFlowIntegrator = documentFlowIntegrator; } }