package org.marketcetera.photon.internal.strategy.engine.sa.ui.workbench; import org.eclipse.core.commands.ExecutionEvent; import org.eclipse.core.commands.ExecutionException; import org.eclipse.jface.viewers.StructuredSelection; import org.eclipse.jface.window.Window; import org.eclipse.jface.wizard.WizardDialog; import org.eclipse.ui.IWorkbenchPart; import org.eclipse.ui.handlers.HandlerUtil; import org.eclipse.ui.part.ISetSelectionTarget; import org.marketcetera.photon.commons.ui.workbench.SafeHandler; import org.marketcetera.photon.strategy.engine.IStrategyEngines; import org.marketcetera.photon.strategy.engine.sa.ui.NewStrategyAgentWizard; import org.marketcetera.util.misc.ClassVersion; /** * Handler for the {@code * org.marketcetera.photon.strategy.engine.sa.ui.workbench. * newStrategyAgent} command that launches the {@link NewStrategyAgentWizard} * and adds it to the current view. * * @author <a href="mailto:will@marketcetera.com">Will Horn</a> * @version $Id: NewStrategyAgentHandler.java 16154 2012-07-14 16:34:05Z colin $ * @since 2.0.0 */ @ClassVersion("$Id: NewStrategyAgentHandler.java 16154 2012-07-14 16:34:05Z colin $") public final class NewStrategyAgentHandler extends SafeHandler { @Override public void executeSafely(ExecutionEvent event) throws ExecutionException { IWorkbenchPart part = HandlerUtil.getActivePartChecked(event); NewStrategyAgentWizard newWizard = new NewStrategyAgentWizard( (IStrategyEngines) part, null); WizardDialog wizardDialog = new WizardDialog(HandlerUtil .getActiveShellChecked(event), newWizard); if (wizardDialog.open() == Window.OK) { if (part instanceof ISetSelectionTarget) { ((ISetSelectionTarget) part) .selectReveal(new StructuredSelection(newWizard .getResult())); } } } }