package thahn.java.agui.ide.eclipse.launch; import org.eclipse.core.resources.IProject; import org.eclipse.core.resources.IProjectDescription; import org.eclipse.core.resources.ResourcesPlugin; import org.eclipse.core.runtime.CoreException; import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.debug.core.ILaunch; import org.eclipse.debug.core.ILaunchConfiguration; import org.eclipse.debug.core.ILaunchConfigurationWorkingCopy; import org.eclipse.jdt.core.IJavaProject; import org.eclipse.jdt.launching.IJavaLaunchConfigurationConstants; import org.eclipse.jdt.launching.JavaLaunchDelegate; import thahn.java.agui.ide.eclipse.project.AguiProjectInfo; import thahn.java.agui.ide.eclipse.project.BaseProjectHelper; public class AguiLaunchDelegate extends JavaLaunchDelegate { //implements ILaunchConfigurationDelegate { public static final String TAG = "AguiLaunchDelegate"; public static final String ID = "thahn.java.agui.ide.eclipse.launch.AguiLaunchDelegate"; @Override public void launch(ILaunchConfiguration configuration, String mode, ILaunch launch, IProgressMonitor monitor) throws CoreException { String projectName = configuration.getAttribute(IJavaLaunchConfigurationConstants.ATTR_PROJECT_NAME, ""); StringBuilder argBuilder = new StringBuilder(); IProject tempProject = ResourcesPlugin.getWorkspace().getRoot().getProject(projectName); if (BaseProjectHelper.isAguiProject(tempProject)) { AguiProjectInfo info = BaseProjectHelper.getAguiProjectInfo(tempProject); argBuilder.append(info.projectPath).append(" ").append(info.packageName).append(" ").append(info.mainActivityName); String args = configuration.getWorkingCopy().getAttribute(IJavaLaunchConfigurationConstants.ATTR_PROGRAM_ARGUMENTS, ""); if (!args.equals(argBuilder.toString())) { ILaunchConfigurationWorkingCopy wc = configuration.getWorkingCopy(); wc.setAttribute(IJavaLaunchConfigurationConstants.ATTR_PROGRAM_ARGUMENTS, argBuilder.toString()); configuration = wc.doSave(); } } super.launch(configuration, mode, launch, monitor); } protected String getAttributeValueFrom(String text) { String content = text.trim(); if (content.length() > 0) { return content; } return null; } @Override public IJavaProject verifyJavaProject(ILaunchConfiguration configuration) throws CoreException { return super.verifyJavaProject(configuration); } }