package org.marketcetera.photon.internal.product; import org.eclipse.equinox.app.IApplication; import org.eclipse.equinox.app.IApplicationContext; import org.eclipse.swt.widgets.Display; import org.eclipse.ui.PlatformUI; import org.eclipse.ui.application.IWorkbenchWindowConfigurer; import org.eclipse.ui.application.WorkbenchWindowAdvisor; import org.marketcetera.core.ClassVersion; import org.marketcetera.photon.ApplicationWorkbenchAdvisor; import org.marketcetera.photon.ApplicationWorkbenchWindowAdvisor; import org.marketcetera.photon.strategy.StrategyUI; /* $License$ */ /** * The Photon application. * * @author <a href="mailto:will@marketcetera.com">Will Horn</a> * @version $Id: Application.java 16154 2012-07-14 16:34:05Z colin $ * @since 2.0.0 */ @ClassVersion("$Id: Application.java 16154 2012-07-14 16:34:05Z colin $")//$NON-NLS-1$ public final class Application implements IApplication { @Override public Object start(IApplicationContext context) throws Exception { Display display = PlatformUI.createDisplay(); try { /* * The advisors are in the org.marketcetera.photon plugin for legacy * reasons. */ int returnCode = PlatformUI.createAndRunWorkbench(display, new ApplicationWorkbenchAdvisor() { @Override public WorkbenchWindowAdvisor createWorkbenchWindowAdvisor( IWorkbenchWindowConfigurer configurer) { return new ApplicationWorkbenchWindowAdvisor( configurer) { @Override public void postWindowOpen() { StrategyUI.initializeStrategyEngines(); super.postWindowOpen(); } }; } }); if (returnCode == PlatformUI.RETURN_RESTART) { return IApplication.EXIT_RESTART; } return IApplication.EXIT_OK; } finally { display.dispose(); } } @Override public void stop() { // Do nothing } }