package org.marketcetera.photon.internal.strategy.ui;
import org.eclipse.core.commands.AbstractHandler;
import org.eclipse.core.commands.ExecutionEvent;
import org.eclipse.core.commands.ExecutionException;
import org.eclipse.core.runtime.IStatus;
import org.eclipse.core.runtime.Status;
import org.eclipse.jface.dialogs.ErrorDialog;
import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.ui.WorkbenchException;
import org.eclipse.ui.handlers.HandlerUtil;
import org.marketcetera.photon.PhotonPlugin;
import org.marketcetera.photon.internal.strategy.TradeSuggestion;
import org.marketcetera.photon.internal.strategy.TradeSuggestionManager;
import org.marketcetera.photon.strategy.StrategyUI;
import org.marketcetera.trade.OrderSingle;
import org.marketcetera.util.log.SLF4JLoggerProxy;
import org.marketcetera.util.misc.ClassVersion;
/* $License$ */
/**
* Opens the trade suggestion in the ticket view to be modified.
*
* @author <a href="mailto:will@marketcetera.com">Will Horn</a>
* @version $Id: OpenSuggestionHandler.java 16154 2012-07-14 16:34:05Z colin $
* @since 1.0.0
*/
@ClassVersion("$Id: OpenSuggestionHandler.java 16154 2012-07-14 16:34:05Z colin $")
public class OpenSuggestionHandler extends AbstractHandler {
@Override
public Object execute(ExecutionEvent event) throws ExecutionException {
IStructuredSelection selection = (IStructuredSelection) HandlerUtil
.getCurrentSelectionChecked(event);
TradeSuggestion suggestion = (TradeSuggestion) selection
.getFirstElement();
OrderSingle order = suggestion.getOrder();
try {
PhotonPlugin.getDefault().showOrderInTicket(order);
TradeSuggestionManager.getCurrent().removeSuggestion(suggestion);
} catch (WorkbenchException e) {
SLF4JLoggerProxy.error(this, e);
Shell shell = HandlerUtil.getActiveShellChecked(event);
ErrorDialog.openError(shell, null, null, new Status(IStatus.ERROR,
StrategyUI.PLUGIN_ID, e.getLocalizedMessage()));
}
return null;
}
}