/** * Copyright (c) 2005-2012 by Appcelerator, Inc. All Rights Reserved. * Licensed under the terms of the Eclipse Public License (EPL). * Please see the license.txt included with this distribution for details. * Any modifications to this file must keep this entire header intact. */ package org.python.pydev.customizations.app_engine.launching; import org.eclipse.core.resources.IProject; import org.eclipse.core.runtime.CoreException; import org.eclipse.debug.core.ILaunchConfiguration; import org.eclipse.debug.core.ILaunchConfigurationWorkingCopy; import org.python.pydev.core.IInterpreterManager; import org.python.pydev.debug.core.Constants; import org.python.pydev.debug.ui.launching.AbstractLaunchShortcut; import org.python.pydev.debug.ui.launching.FileOrResource; import org.python.pydev.plugin.PydevPlugin; public class AppEngineLaunchShortcut extends AbstractLaunchShortcut { @Override protected String getLaunchConfigurationType() { return AppEngineConstants.APP_ENGINE_LAUNCH_CONFIGURATION_TYPE; } /** * The only thing different is that we have to override the creation of the default launch configuration. */ @Override public ILaunchConfiguration createDefaultLaunchConfiguration(FileOrResource[] resources) { try { ILaunchConfigurationWorkingCopy workingCopy = super .createDefaultLaunchConfigurationWithoutSaving(resources); String mainDir = workingCopy.getAttribute(Constants.ATTR_LOCATION, ""); //dev_appserver.py [options] <application root> workingCopy.setAttribute(Constants.ATTR_LOCATION, "${GOOGLE_APP_ENGINE}/dev_appserver.py"); workingCopy.setAttribute(Constants.ATTR_PROGRAM_ARGUMENTS, "\"" + mainDir + "\""); return workingCopy.doSave(); } catch (CoreException e) { reportError(null, e); return null; } } @Override protected IInterpreterManager getInterpreterManager(IProject project) { return PydevPlugin.getPythonInterpreterManager(); } }