blob: 19ee584d92e1dabd2856e8df433f64f0ef2f98fc [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2000, 2013 IBM Corporation and others.
*
* This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
* which accompanies this distribution, and is available at
* https://www.eclipse.org/legal/epl-2.0/
*
* SPDX-License-Identifier: EPL-2.0
*
* Contributors:
* IBM Corporation - initial API and implementation
* dakshinamurthy.karra@gmail.com - bug 165371
*******************************************************************************/
package org.eclipse.ant.internal.ui.launchConfigurations;
import org.eclipse.ant.internal.ui.AntUtil;
import org.eclipse.ant.internal.ui.IAntUIHelpContextIds;
import org.eclipse.core.externaltools.internal.IExternalToolConstants;
import org.eclipse.core.resources.IFile;
import org.eclipse.core.resources.IResource;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.variables.VariablesPlugin;
import org.eclipse.debug.core.DebugPlugin;
import org.eclipse.debug.core.ILaunchConfiguration;
import org.eclipse.debug.core.ILaunchConfigurationWorkingCopy;
import org.eclipse.debug.ui.AbstractLaunchConfigurationTabGroup;
import org.eclipse.debug.ui.CommonTab;
import org.eclipse.debug.ui.DebugUITools;
import org.eclipse.debug.ui.IDebugUIConstants;
import org.eclipse.debug.ui.ILaunchConfigurationDialog;
import org.eclipse.debug.ui.ILaunchConfigurationTab;
import org.eclipse.debug.ui.RefreshTab;
import org.eclipse.jdt.launching.IJavaLaunchConfigurationConstants;
import org.eclipse.ui.externaltools.internal.launchConfigurations.ExternalToolsBuildTab;
public class AntTabGroup extends AbstractLaunchConfigurationTabGroup {
/*
* (non-Javadoc)
*
* @see org.eclipse.debug.ui.ILaunchConfigurationTabGroup#initializeFrom(org.eclipse.debug.core.ILaunchConfiguration)
*/
@Override
@SuppressWarnings("deprecation")
public void initializeFrom(ILaunchConfiguration configuration) {
try {
boolean captureOutput = configuration.getAttribute(IExternalToolConstants.ATTR_CAPTURE_OUTPUT, true);
if (!captureOutput && configuration instanceof ILaunchConfigurationWorkingCopy) {
ILaunchConfigurationWorkingCopy copy = (ILaunchConfigurationWorkingCopy) configuration;
copy.setAttribute(IExternalToolConstants.ATTR_CAPTURE_OUTPUT, (String) null);
copy.setAttribute(DebugPlugin.ATTR_CAPTURE_OUTPUT, false);
copy.setAttribute(IDebugUIConstants.ATTR_CAPTURE_IN_CONSOLE, false);
}
}
catch (CoreException e) {
// do nothing
}
super.initializeFrom(configuration);
}
/*
* (non-Javadoc)
*
* @see org.eclipse.debug.ui.ILaunchConfigurationTabGroup#createTabs(org.eclipse.debug.ui.ILaunchConfigurationDialog, java.lang.String)
*/
@Override
public void createTabs(ILaunchConfigurationDialog dialog, String mode) {
RefreshTab refresh = new RefreshTab();
refresh.setHelpContextId(IAntUIHelpContextIds.ANT_REFRESH_TAB);
ExternalToolsBuildTab build = new ExternalToolsBuildTab();
build.setHelpContextId(IAntUIHelpContextIds.ANT_BUILD_TAB);
AntClasspathTab classpath = new AntClasspathTab();
classpath.setHelpContextId(IAntUIHelpContextIds.ANT_CLASSPATH_TAB);
AntJRETab jre = new AntJRETab();
jre.setHelpContextId(IAntUIHelpContextIds.ANT_JRE_TAB);
AntEnvironmentTab env = new AntEnvironmentTab();
env.setHelpContextId(IAntUIHelpContextIds.ANT_ENVIRONMENT_TAB);
CommonTab common = new CommonTab();
common.setHelpContextId(IAntUIHelpContextIds.ANT_COMMON_TAB);
ILaunchConfigurationTab[] tabs = new ILaunchConfigurationTab[] { new AntMainTab(), refresh, build, new AntTargetsTab(), classpath,
new AntPropertiesTab(), jre, env, common };
setTabs(tabs);
}
/*
* (non-Javadoc)
*
* @see org.eclipse.debug.ui.ILaunchConfigurationTabGroup#setDefaults(org.eclipse.debug.core.ILaunchConfigurationWorkingCopy)
*/
@Override
public void setDefaults(ILaunchConfigurationWorkingCopy configuration) {
// set default name for script
IResource resource = DebugUITools.getSelectedResource();
if (resource != null && resource instanceof IFile) {
IFile file = (IFile) resource;
if (AntUtil.isKnownAntFile(file)) {
String projectName = file.getProject().getName();
StringBuffer buffer = new StringBuffer(projectName);
buffer.append(' ');
buffer.append(file.getName());
String name = buffer.toString().trim();
name = DebugPlugin.getDefault().getLaunchManager().generateLaunchConfigurationName(name);
configuration.rename(name);
// set the project name so that the correct default VM install can be determined
configuration.setAttribute(IJavaLaunchConfigurationConstants.ATTR_PROJECT_NAME, projectName);
configuration.setAttribute(IExternalToolConstants.ATTR_LOCATION, VariablesPlugin.getDefault().getStringVariableManager().generateVariableExpression("workspace_loc", file.getFullPath().toString())); //$NON-NLS-1$
}
}
configuration.setAttribute(IJavaLaunchConfigurationConstants.ATTR_CLASSPATH_PROVIDER, "org.eclipse.ant.ui.AntClasspathProvider"); //$NON-NLS-1$
super.setDefaults(configuration);
}
}