package org.marketcetera.photon.internal.marketdata.ui; import java.text.MessageFormat; import org.eclipse.core.commands.AbstractHandler; import org.eclipse.core.commands.ExecutionEvent; import org.eclipse.core.commands.ExecutionException; import org.eclipse.ui.IWorkbenchPage; import org.eclipse.ui.PartInitException; import org.eclipse.ui.PlatformUI; import org.eclipse.ui.handlers.HandlerUtil; import org.marketcetera.photon.marketdata.ui.MarketDataUI; import org.marketcetera.util.misc.ClassVersion; /* $License$ */ /** * Handles {@link MarketDataUI#SHOW_MARKET_DEPTH_COMMAND_ID} by launching a Market Depth view for * the symbol and source specified in the command parameters. * * @author <a href="mailto:will@marketcetera.com">Will Horn</a> * @version $Id: ShowMarketDepthHandler.java 16154 2012-07-14 16:34:05Z colin $ * @since 1.5.0 */ @ClassVersion("$Id: ShowMarketDepthHandler.java 16154 2012-07-14 16:34:05Z colin $") public class ShowMarketDepthHandler extends AbstractHandler { @Override public Object execute(ExecutionEvent event) throws ExecutionException { final String symbol = (String) event .getParameter(MarketDataUI.SHOW_MARKET_DEPTH_COMMAND_SYMBOL_PARAMETER); final String source = (String) event .getParameter(MarketDataUI.SHOW_MARKET_DEPTH_COMMAND_SOURCE_PARAMETER); final IWorkbenchPage page = HandlerUtil.getActiveWorkbenchWindowChecked(event) .getActivePage(); PlatformUI.getWorkbench().getDisplay().asyncExec(new Runnable() { @Override public void run() { try { page.showView(MarketDepthView.ID, MessageFormat.format("{0},{1}", //$NON-NLS-1$ symbol, source), IWorkbenchPage.VIEW_ACTIVATE); } catch (PartInitException e) { Messages.SHOW_MARKET_DEPTH_HANDLER_UNABLE_TO_SHOW_VIEW.error( ShowMarketDepthHandler.this, e, symbol, source); } } }); return null; } }