This commit was manufactured by cvs2svn to create tag 'v20030826'.

Sprout from master 2003-08-26 00:23:33 UTC Darin Wright <darin> '*** empty log message ***'
Delete:
    org.eclipse.ui.externaltools/.classpath
    org.eclipse.ui.externaltools/.cvsignore
    org.eclipse.ui.externaltools/.options
    org.eclipse.ui.externaltools/.project
    org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/launchConfigurations/ExternalToolsBuilderTab.java
    org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/launchConfigurations/ExternalToolsLaunchConfigurationMessages.java
    org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/launchConfigurations/ExternalToolsLaunchConfigurationMessages.properties
    org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/launchConfigurations/ExternalToolsMainTab.java
    org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/launchConfigurations/ExternalToolsUtil.java
    org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/launchConfigurations/WorkingSetComparator.java
    org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/menu/ExternalToolMenuDelegate.java
    org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/model/ExternalToolBuilder.java
    org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/model/ExternalToolsImages.java
    org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/model/ExternalToolsModelMessages.java
    org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/model/ExternalToolsModelMessages.properties
    org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/model/ExternalToolsPlugin.java
    org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/model/IExternalToolConstants.java
    org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/model/IExternalToolsHelpContextIds.java
    org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/model/IPreferenceConstants.java
    org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/model/ImageDescriptorRegistry.java
    org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/model/StringMatcher.java
    org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/registry/ExternalToolMigration.java
    org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/ui/BuilderPropertyPage.java
    org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/ui/ExternalToolsContentProvider.java
    org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/ui/ExternalToolsPreferencePage.java
    org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/ui/ExternalToolsUIMessages.java
    org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/ui/ExternalToolsUIMessages.properties
    org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/ui/FileSelectionDialog.java
    org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/ui/MessageDialogWithToggle.java
    org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/ui/TreeAndListGroup.java
    org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/variables/BuildTypeExpander.java
    org.eclipse.ui.externaltools/Program Tools Support/org/eclipse/ui/externaltools/internal/program/launchConfigurations/BackgroundResourceRefresher.java
    org.eclipse.ui.externaltools/Program Tools Support/org/eclipse/ui/externaltools/internal/program/launchConfigurations/ExternalToolsProgramMessages.java
    org.eclipse.ui.externaltools/Program Tools Support/org/eclipse/ui/externaltools/internal/program/launchConfigurations/ExternalToolsProgramMessages.properties
    org.eclipse.ui.externaltools/Program Tools Support/org/eclipse/ui/externaltools/internal/program/launchConfigurations/ProgramBuilderTabGroup.java
    org.eclipse.ui.externaltools/Program Tools Support/org/eclipse/ui/externaltools/internal/program/launchConfigurations/ProgramLaunchDelegate.java
    org.eclipse.ui.externaltools/Program Tools Support/org/eclipse/ui/externaltools/internal/program/launchConfigurations/ProgramMainTab.java
    org.eclipse.ui.externaltools/Program Tools Support/org/eclipse/ui/externaltools/internal/program/launchConfigurations/ProgramTabGroup.java
    org.eclipse.ui.externaltools/about.html
    org.eclipse.ui.externaltools/build.properties
    org.eclipse.ui.externaltools/buildfiles/exportplugin.xml
    org.eclipse.ui.externaltools/icons/full/ctool16/external_tools.gif
    org.eclipse.ui.externaltools/icons/full/dtool16/external_tools.gif
    org.eclipse.ui.externaltools/icons/full/etool16/external_tools.gif
    org.eclipse.ui.externaltools/icons/full/obj16/builder.gif
    org.eclipse.ui.externaltools/icons/full/obj16/classpath.gif
    org.eclipse.ui.externaltools/icons/full/obj16/external_tools.gif
    org.eclipse.ui.externaltools/icons/full/obj16/invalid_build_tool.gif
    org.eclipse.ui.externaltools/icons/full/obj16/main_tab.gif
    org.eclipse.ui.externaltools/icons/full/wizban/ext_tools_wiz.gif
    org.eclipse.ui.externaltools/plugin.properties
    org.eclipse.ui.externaltools/plugin.xml
diff --git a/org.eclipse.ui.externaltools/.classpath b/org.eclipse.ui.externaltools/.classpath
deleted file mode 100644
index c10abc8..0000000
--- a/org.eclipse.ui.externaltools/.classpath
+++ /dev/null
@@ -1,16 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>

-<classpath>

-    <classpathentry kind="src" path="External Tools Base/"/>

-    <classpathentry kind="src" path="Program Tools Support/"/>

-    <classpathentry kind="src" path="/org.apache.ant"/>

-    <classpathentry kind="src" path="/org.apache.xerces"/>

-    <classpathentry kind="src" path="/org.eclipse.ant.core"/>

-    <classpathentry kind="src" path="/org.eclipse.core.resources"/>

-    <classpathentry kind="src" path="/org.eclipse.ui"/>

-    <classpathentry kind="src" path="/org.eclipse.debug.core"/>

-    <classpathentry kind="src" path="/org.eclipse.debug.ui"/>

-    <classpathentry kind="src" path="/org.eclipse.core.runtime"/>

-    <classpathentry kind="src" path="/org.eclipse.core.boot"/>

-    <classpathentry kind="var" path="JRE_LIB" sourcepath="JRE_SRC"/>

-    <classpathentry kind="output" path="bin"/>

-</classpath>

diff --git a/org.eclipse.ui.externaltools/.cvsignore b/org.eclipse.ui.externaltools/.cvsignore
deleted file mode 100644
index 1fb8f5b..0000000
--- a/org.eclipse.ui.externaltools/.cvsignore
+++ /dev/null
@@ -1,4 +0,0 @@
-bin

-externaltools.jar

-build.xml

-temp.folder

diff --git a/org.eclipse.ui.externaltools/.options b/org.eclipse.ui.externaltools/.options
deleted file mode 100644
index d127194..0000000
--- a/org.eclipse.ui.externaltools/.options
+++ /dev/null
@@ -1 +0,0 @@
-# Debugging options for the org.eclipse.ui.externaltools plugin.

diff --git a/org.eclipse.ui.externaltools/.project b/org.eclipse.ui.externaltools/.project
deleted file mode 100644
index f08c8f5..0000000
--- a/org.eclipse.ui.externaltools/.project
+++ /dev/null
@@ -1,37 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>

-<projectDescription>

-	<name>org.eclipse.ui.externaltools</name>

-	<comment></comment>

-	<projects>

-		<project>org.apache.ant</project>

-		<project>org.apache.xerces</project>

-		<project>org.eclipse.ant.core</project>

-		<project>org.eclipse.core.boot</project>

-		<project>org.eclipse.core.resources</project>

-		<project>org.eclipse.core.runtime</project>

-		<project>org.eclipse.debug.core</project>

-		<project>org.eclipse.debug.ui</project>

-		<project>org.eclipse.ui</project>

-	</projects>

-	<buildSpec>

-		<buildCommand>

-			<name>org.eclipse.jdt.core.javabuilder</name>

-			<arguments>

-			</arguments>

-		</buildCommand>

-		<buildCommand>

-			<name>org.eclipse.pde.ManifestBuilder</name>

-			<arguments>

-			</arguments>

-		</buildCommand>

-		<buildCommand>

-			<name>org.eclipse.pde.SchemaBuilder</name>

-			<arguments>

-			</arguments>

-		</buildCommand>

-	</buildSpec>

-	<natures>

-		<nature>org.eclipse.jdt.core.javanature</nature>

-		<nature>org.eclipse.pde.PluginNature</nature>

-	</natures>

-</projectDescription>

diff --git a/org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/launchConfigurations/ExternalToolsBuilderTab.java b/org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/launchConfigurations/ExternalToolsBuilderTab.java
deleted file mode 100644
index f10bba0..0000000
--- a/org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/launchConfigurations/ExternalToolsBuilderTab.java
+++ /dev/null
@@ -1,270 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.externaltools.internal.launchConfigurations;
-
-
-import org.eclipse.core.resources.IncrementalProjectBuilder;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.debug.core.ILaunchConfiguration;
-import org.eclipse.debug.core.ILaunchConfigurationWorkingCopy;
-import org.eclipse.debug.core.variables.LaunchVariableUtil;
-import org.eclipse.debug.ui.AbstractLaunchConfigurationTab;
-import org.eclipse.debug.ui.DebugUITools;
-import org.eclipse.debug.ui.launchVariables.IVariableComponent;
-import org.eclipse.debug.ui.launchVariables.IVariableComponentContainer;
-import org.eclipse.jface.dialogs.IMessageProvider;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.events.SelectionListener;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.ui.ISharedImages;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.externaltools.internal.model.ExternalToolBuilder;
-import org.eclipse.ui.externaltools.internal.model.IExternalToolConstants;
-import org.eclipse.ui.externaltools.internal.model.IExternalToolsHelpContextIds;
-import org.eclipse.ui.help.WorkbenchHelp;
-
-public class ExternalToolsBuilderTab extends AbstractLaunchConfigurationTab implements IVariableComponentContainer {
-
-	private Button fullBuildButton;
-	private Button autoBuildButton;
-	private Button incrementalBuildButton;
-	private Button workingSetButton;
-	private IVariableComponent workingSetComponent;
-	
-	private SelectionListener selectionListener= new SelectionAdapter() {
-		/**
-		 * @see org.eclipse.swt.events.SelectionListener#widgetSelected(org.eclipse.swt.events.SelectionEvent)
-		 */
-		public void widgetSelected(SelectionEvent e) {
-			boolean enabled= autoBuildButton.getSelection() || incrementalBuildButton.getSelection();
-			workingSetButton.setEnabled(enabled);
-			workingSetComponent.setEnabled(enabled);
-			updateLaunchConfigurationDialog();
-		}
-	};
-
-	public void createControl(Composite parent) {
-		Composite mainComposite = new Composite(parent, SWT.NONE);
-		setControl(mainComposite);
-		WorkbenchHelp.setHelp(getControl(), IExternalToolsHelpContextIds.EXTERNAL_TOOLS_LAUNCH_CONFIGURATION_DIALOG_BUILDER_TAB);
-		
-		GridLayout layout = new GridLayout();
-		GridData gridData = new GridData(GridData.FILL_HORIZONTAL);
-		mainComposite.setLayout(layout);
-		mainComposite.setLayoutData(gridData);
-		mainComposite.setFont(parent.getFont());
-		createBuildScheduleComponent(mainComposite);
-		
-		workingSetComponent= DebugUITools.getVariableComponentManager().getComponent(IExternalToolConstants.VAR_WORKING_SET);
-		workingSetComponent.createContents(mainComposite, ExternalToolsLaunchConfigurationMessages.getString("ExternalToolsBuilderTab.Working_Sets_1"), this); //$NON-NLS-1$
-	}
-	
-	private void createBuildScheduleComponent(Composite parent) {
-		Label label= new Label(parent, SWT.NONE);
-		label.setText(ExternalToolsLaunchConfigurationMessages.getString("ExternalToolsBuilderTab.Run_this_builder_for__1")); //$NON-NLS-1$
-		label.setFont(parent.getFont());
-		fullBuildButton= createButton(parent, selectionListener, ExternalToolsLaunchConfigurationMessages.getString("ExternalToolsBuilderTab.&Full_builds_2"), ExternalToolsLaunchConfigurationMessages.getString("ExternalToolsBuilderTab.Full")); //$NON-NLS-1$ //$NON-NLS-2$
-		incrementalBuildButton= createButton(parent, selectionListener, ExternalToolsLaunchConfigurationMessages.getString("ExternalToolsBuilderTab.&Incremental_builds_4"), ExternalToolsLaunchConfigurationMessages.getString("ExternalToolsBuilderTab.Inc")); //$NON-NLS-1$ //$NON-NLS-2$
-		autoBuildButton= createButton(parent, selectionListener, ExternalToolsLaunchConfigurationMessages.getString("ExternalToolsBuilderTab.&Auto_builds_(Not_recommended)_6"), ExternalToolsLaunchConfigurationMessages.getString("ExternalToolsBuilderTab.Auto")); //$NON-NLS-1$ //$NON-NLS-2$
-		
-		SelectionAdapter listener= new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent e) {
-				updateWorkingSetComponent();
-			}
-		};
-		
-		new Label(parent, SWT.NONE);
-		
-		workingSetButton= createButton(parent, listener, ExternalToolsLaunchConfigurationMessages.getString("ExternalToolsBuilderTab.workingSet_label"), ExternalToolsLaunchConfigurationMessages.getString("ExternalToolsBuilderTab.workingSet_tooltip")); //$NON-NLS-1$ //$NON-NLS-2$
-	}
-	
-	/**
-	 * Creates a check button in the given composite with the given text
-	 */
-	private Button createButton(Composite parent, SelectionListener listener, String text, String tooltipText) {
-		Button button= new Button(parent, SWT.CHECK);
-		button.setText(text);
-		button.setToolTipText(tooltipText);
-		button.addSelectionListener(listener);
-		button.setFont(parent.getFont());
-		return button;
-	}
-
-	/**
-	 * @see org.eclipse.debug.ui.ILaunchConfigurationTab#setDefaults(org.eclipse.debug.core.ILaunchConfigurationWorkingCopy)
-	 */
-	public void setDefaults(ILaunchConfigurationWorkingCopy configuration) {
-		StringBuffer buffer= new StringBuffer(IExternalToolConstants.BUILD_TYPE_FULL);
-		buffer.append(',');
-		buffer.append(IExternalToolConstants.BUILD_TYPE_INCREMENTAL);
-		buffer.append(','); 
-		configuration.setAttribute(IExternalToolConstants.ATTR_RUN_BUILD_KINDS, buffer.toString());
-	}
-
-	/**
-	 * Sets the state of the widgets from the given configuration
-	 * 
-	 * @see org.eclipse.debug.ui.ILaunchConfigurationTab#initializeFrom(ILaunchConfiguration)
-	 */
-	public void initializeFrom(ILaunchConfiguration configuration) {
-		
-		fullBuildButton.setSelection(false);
-		incrementalBuildButton.setSelection(false);
-		autoBuildButton.setSelection(false);
-
-		String buildKindString= null;
-		String buildScope= null;
-		try {
-			buildKindString= configuration.getAttribute(IExternalToolConstants.ATTR_RUN_BUILD_KINDS, ""); //$NON-NLS-1$
-			buildScope= configuration.getAttribute(IExternalToolConstants.ATTR_BUILD_SCOPE, (String)null);
-		} catch (CoreException e) {
-		}
-		
-		workingSetButton.setSelection(buildScope != null);
-		workingSetButton.setEnabled(buildScope != null);
-		
-		if (buildScope != null) {
-			LaunchVariableUtil.VariableDefinition variable= LaunchVariableUtil.extractVariableDefinition(buildScope, 0);
-			workingSetComponent.setVariableValue(variable.argument);
-		}
-		
-		updateWorkingSetComponent();
-		
-		int buildTypes[]= ExternalToolBuilder.buildTypesToArray(buildKindString);
-		for (int i = 0; i < buildTypes.length; i++) {
-			switch (buildTypes[i]) {
-				case IncrementalProjectBuilder.FULL_BUILD:
-					fullBuildButton.setSelection(true);
-					break;
-				case IncrementalProjectBuilder.INCREMENTAL_BUILD:
-					incrementalBuildButton.setSelection(true);
-					break;
-				case IncrementalProjectBuilder.AUTO_BUILD:
-					autoBuildButton.setSelection(true);
-					break;
-			}
-		}
-		boolean enabled= autoBuildButton.getSelection() || incrementalBuildButton.getSelection();
-		workingSetButton.setEnabled(enabled);
-		workingSetComponent.setEnabled(enabled);
-	}
-
-	/**
-	 * Stores the settings from the dialog into the launch configuration
-	 * 
-	 * @see org.eclipse.debug.ui.ILaunchConfigurationTab#performApply(ILaunchConfigurationWorkingCopy)
-	 */
-	public void performApply(ILaunchConfigurationWorkingCopy configuration) {
-		StringBuffer buffer= new StringBuffer();
-		if (fullBuildButton.getSelection()) {
-			buffer.append(IExternalToolConstants.BUILD_TYPE_FULL).append(',');
-		} 
-		if (incrementalBuildButton.getSelection()){
-			buffer.append(IExternalToolConstants.BUILD_TYPE_INCREMENTAL).append(','); 
-		} 
-		if (autoBuildButton.getSelection()) {
-			buffer.append(IExternalToolConstants.BUILD_TYPE_AUTO).append(',');
-		}
-		configuration.setAttribute(IExternalToolConstants.ATTR_RUN_BUILD_KINDS, buffer.toString());
-		
-		if (workingSetButton.getSelection()) {
-			String variableTag= LaunchVariableUtil.newVariableExpression("working_set", workingSetComponent.getVariableValue()); //$NON-NLS-1$
-			configuration.setAttribute(IExternalToolConstants.ATTR_BUILD_SCOPE, variableTag);
-		} else {
-			configuration.setAttribute(IExternalToolConstants.ATTR_BUILD_SCOPE, (String)null);
-		}
-	}
-
-	/**
-	 * @see org.eclipse.debug.ui.ILaunchConfigurationTab#getName()
-	 */
-	public String getName() {
-		return ExternalToolsLaunchConfigurationMessages.getString("ExternalToolsBuilderTab.Build_Options_9"); //$NON-NLS-1$
-	}
-	
-	/**
-	 * @see org.eclipse.debug.ui.ILaunchConfigurationTab#getImage()
-	 */
-	public Image getImage() {
-		return PlatformUI.getWorkbench().getSharedImages().getImage(ISharedImages.IMG_OBJ_PROJECT);
-	}
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.externaltools.internal.group.IVariableComponentContainer#updateValidState()
-	 */
-	public void updateValidState() {
-		updateLaunchConfigurationDialog();
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.dialogs.IMessageProvider#getMessageType()
-	 */
-	public int getMessageType() {
-		if (getErrorMessage() != null) {
-			return IMessageProvider.ERROR;
-		} else if (getMessage() != null) {
-			return IMessageProvider.WARNING;
-		}
-		return IMessageProvider.NONE;
-	}
-	
-	public void setErrorMessage(String errorMessage) {
-		super.setErrorMessage(errorMessage);
-	}
-	
-	private void updateWorkingSetComponent() {
-		workingSetComponent.getControl().setVisible(workingSetButton.getSelection());
-		setErrorMessage(null);
-		if (workingSetButton.getSelection()) {
-			workingSetComponent.validate();
-		}
-	
-		updateLaunchConfigurationDialog();			
-	}
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.ui.ILaunchConfigurationTab#isValid(org.eclipse.debug.core.ILaunchConfiguration)
-	 */
-	public boolean isValid(ILaunchConfiguration launchConfig) {
-		if (!workingSetComponent.isValid()) {
-			return false;
-		}
-		setErrorMessage(null);
-		setMessage(null);
-		
-		boolean buildKindSelected= fullBuildButton.getSelection() || incrementalBuildButton.getSelection() || autoBuildButton.getSelection();
-		if (!buildKindSelected) {
-			setErrorMessage(ExternalToolsLaunchConfigurationMessages.getString("ExternalToolsBuilderTab.buildKindError")); //$NON-NLS-1$
-			return false;
-		}
-
-		return workingSetComponent.isValid();
-	}
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.ui.ILaunchConfigurationTab#canSave()
-	 */
-	public boolean canSave() {
-		return isValid(null);
-	}
-	/* (non-Javadoc)
-	 * @see org.eclipse.debug.ui.ILaunchConfigurationTab#dispose()
-	 */
-	public void dispose() {
-		super.dispose();
-		workingSetComponent.dispose();
-	}
-
-}
diff --git a/org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/launchConfigurations/ExternalToolsLaunchConfigurationMessages.java b/org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/launchConfigurations/ExternalToolsLaunchConfigurationMessages.java
deleted file mode 100644
index e1e1695..0000000
--- a/org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/launchConfigurations/ExternalToolsLaunchConfigurationMessages.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.externaltools.internal.launchConfigurations;
-
-
-import java.util.MissingResourceException;
-import java.util.ResourceBundle;
-
-public class ExternalToolsLaunchConfigurationMessages {
-
-	private static final String BUNDLE_NAME = "org.eclipse.ui.externaltools.internal.launchConfigurations.ExternalToolsLaunchConfigurationMessages"; //$NON-NLS-1$
-
-	private static final ResourceBundle RESOURCE_BUNDLE =
-		ResourceBundle.getBundle(BUNDLE_NAME);
-
-	private ExternalToolsLaunchConfigurationMessages() {
-	}
-
-	public static String getString(String key) {
-		try {
-			return RESOURCE_BUNDLE.getString(key);
-		} catch (MissingResourceException e) {
-			return '!' + key + '!';
-		}
-	}
-}
diff --git a/org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/launchConfigurations/ExternalToolsLaunchConfigurationMessages.properties b/org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/launchConfigurations/ExternalToolsLaunchConfigurationMessages.properties
deleted file mode 100644
index a86e015..0000000
--- a/org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/launchConfigurations/ExternalToolsLaunchConfigurationMessages.properties
+++ /dev/null
@@ -1,54 +0,0 @@
-###############################################################################
-# Copyright (c) 2000, 2003 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials 
-# are made available under the terms of the Common Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/cpl-v10.html
-# 
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-
-ExternalToolsMainTab.&Location___2=&Location: 
-ExternalToolsMainTab.&Browse_Workspace..._3=&Browse Workspace...
-ExternalToolsMainTab.Brows&e_File_System..._4=Brows&e File System...
-ExternalToolsMainTab.Working_&Directory__5=Working &Directory:
-ExternalToolsMainTab.Browse_Wor&kspace..._6=Browse Wor&kspace...
-ExternalToolsMainTab.Browse_F&ile_System..._7=Browse F&ile System...
-ExternalToolsMainTab.Error_reading_configuration_10=Error reading configuration
-ExternalToolsMainTab.&Main_17=Main
-ExternalToolsMainTab.External_tool_location_cannot_be_empty_18=External tool location cannot be empty
-ExternalToolsMainTab.External_tool_location_does_not_exist_19=External tool location does not exist
-ExternalToolsMainTab.External_tool_location_specified_is_not_a_file_20=External tool location specified is not a file
-ExternalToolsMainTab.External_tool_working_directory_does_not_exist_or_is_invalid_21=External tool working directory does not exist or is invalid
-ExternalToolsMainTab.Select_a_resource_22=Select a resource:
-ExternalToolsMainTab.&Select_a_directory__23=&Select a working directory:
-ExternalToolsMainTab.&Arguments___1=&Arguments: 
-ExternalToolsMainTab.Varia&bles..._2=Variable&s...
-ExternalToolsMainTab.Note__Enclose_an_argument_containing_spaces_using_double-quotes_(__)._Not_applicable_for_variables._3=Note: Enclose an argument containing spaces using double-quotes (\").\nNot applicable for variables.
-ExternalToolsMainTab.Run_tool_in_bac&kground_4=&Run tool in background
-ExternalToolsMainTab.Error_reading_configuration_7=Error reading configuration
-ExternalToolsMainTab.Invalid_Expected_closing_}=Invalid variable format. Expected closing }
-ExternalToolsMainTab.No_variable_specified=Invalid variable format. No variable specified
-ExternalToolsMainTab.Unknown_variable=Unknown variable: {0}
-ExternalToolsMainTab.Not_a_directory=The specified location is not a directory
-
-ExternalToolsUtil.Location_not_specified_by_{0}_1=Location not specified by {0}
-ExternalToolsUtil.invalidLocation_{0} = The file does not exist for the external tool named {0}.
-ExternalToolsUtil.invalidDirectory_{0} = The working directory {0} does not exist for the external tool named {1}.
-ExternalToolsUtil.Could_not_resolve_an_argument._1=Could not resolve an argument.
-ExternalToolsUtil.Could_not_resolve_location._3=Could not resolve location.
-ExternalToolsUtil.Could_not_resolve_working_directory._4=Could not resolve working directory.
-
-ExternalToolsBuilderTab.Run_this_builder_for__1=Run for:
-ExternalToolsBuilderTab.&Full_builds_2=&Full builds
-ExternalToolsBuilderTab.Full=Runs whenever a full build is invoked. The \"Rebuild All\" action causes a full build.
-ExternalToolsBuilderTab.&Incremental_builds_4=&Incremental builds
-ExternalToolsBuilderTab.Inc=Runs whenever an incremental build is invoked. The \"Build All\" action causes an incremental build.
-ExternalToolsBuilderTab.&Auto_builds_(Not_recommended)_6=&Auto builds
-ExternalToolsBuilderTab.Auto=Runs whenever a resource in the workspace is modified if autobuilding is enabled. Enabling this option should be paired with a specifying a resource working set.
-ExternalToolsBuilderTab.Build_Options_9=Build Options
-ExternalToolsBuilderTab.Working_Sets_1=Working Set
-ExternalToolsBuilderTab.workingSet_label=Specify working set of &relevant resources (not applied to full builds)
-ExternalToolsBuilderTab.workingSet_tooltip=The working set of resources that if changed from an incremental or auto build will trigger the external tool builder
-ExternalToolsBuilderTab.buildKindError=At least one type of build kind must be selected
diff --git a/org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/launchConfigurations/ExternalToolsMainTab.java b/org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/launchConfigurations/ExternalToolsMainTab.java
deleted file mode 100644
index 642ea3b..0000000
--- a/org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/launchConfigurations/ExternalToolsMainTab.java
+++ /dev/null
@@ -1,570 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.externaltools.internal.launchConfigurations;
-
-
-import java.io.File;
-import java.text.MessageFormat;
-
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.debug.core.DebugPlugin;
-import org.eclipse.debug.core.ILaunchConfiguration;
-import org.eclipse.debug.core.ILaunchConfigurationWorkingCopy;
-import org.eclipse.debug.core.variables.ILaunchVariableManager;
-import org.eclipse.debug.core.variables.LaunchVariableUtil;
-import org.eclipse.debug.ui.AbstractLaunchConfigurationTab;
-import org.eclipse.debug.ui.launchVariables.LaunchVariableSelectionDialog;
-import org.eclipse.jface.dialogs.IDialogConstants;
-import org.eclipse.jface.window.Window;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.ModifyEvent;
-import org.eclipse.swt.events.ModifyListener;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.events.SelectionListener;
-import org.eclipse.swt.graphics.Font;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.DirectoryDialog;
-import org.eclipse.swt.widgets.FileDialog;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.ui.dialogs.ContainerSelectionDialog;
-import org.eclipse.ui.dialogs.ResourceSelectionDialog;
-import org.eclipse.ui.externaltools.internal.model.ExternalToolsImages;
-import org.eclipse.ui.externaltools.internal.model.ExternalToolsPlugin;
-import org.eclipse.ui.externaltools.internal.model.IExternalToolConstants;
-
-public abstract class ExternalToolsMainTab extends AbstractLaunchConfigurationTab {
-
-	protected Text locationField;
-	protected Text workDirectoryField;
-	protected Button fileLocationButton;
-	protected Button workspaceLocationButton;
-	protected Button fileWorkingDirectoryButton;
-	protected Button workspaceWorkingDirectoryButton;
-
-	protected Button runBackgroundButton;
-	protected Text argumentField;
-	protected Button variableButton;
-
-	protected SelectionAdapter selectionAdapter;
-	
-	/**
-	 * The default value to use for the IExternalToolConstants.ATTR_RUN_IN_BACKGROUND attribute.
-	 */
-	private boolean runInBackgroundAttributeDefaultValue;
-	
-	protected ModifyListener modifyListener = new ModifyListener() {
-		public void modifyText(ModifyEvent e) {
-			updateLaunchConfigurationDialog();
-		}
-	};
-
-	public ExternalToolsMainTab(boolean runInBackgroundDefaultValue) {
-		runInBackgroundAttributeDefaultValue= runInBackgroundDefaultValue;
-	}
-	
-	/**
-	 * @see org.eclipse.debug.ui.ILaunchConfigurationTab#createControl(org.eclipse.swt.widgets.Composite)
-	 */
-	public void createControl(Composite parent) {
-		Composite mainComposite = new Composite(parent, SWT.NONE);
-		setControl(mainComposite);
-		
-		GridLayout layout = new GridLayout();
-		layout.numColumns = 2;
-		GridData gridData = new GridData(GridData.FILL_HORIZONTAL);
-		mainComposite.setLayout(layout);
-		mainComposite.setLayoutData(gridData);
-		mainComposite.setFont(parent.getFont());
-		createLocationComponent(mainComposite);
-		createWorkDirectoryComponent(mainComposite);
-		createArgumentComponent(mainComposite);
-		createVerticalSpacer(mainComposite, 2);
-		createRunBackgroundComponent(mainComposite);
-	}
-	
-	/**
-	 * Creates the controls needed to edit the location
-	 * attribute of an external tool
-	 * 
-	 * @param parent the composite to create the controls in
-	 */
-	protected void createLocationComponent(Composite parent) {
-		Font font = parent.getFont();
-		
-		Composite composite = new Composite(parent, SWT.NONE);
-		GridLayout layout = new GridLayout();
-		layout.marginWidth = 0;
-		layout.marginHeight = 0;
-		layout.numColumns = 1;
-		GridData gridData = new GridData(GridData.FILL_HORIZONTAL);
-		composite.setLayout(layout);
-		composite.setLayoutData(gridData);
-		
-		Label label = new Label(composite, SWT.NONE);
-		label.setText(ExternalToolsLaunchConfigurationMessages.getString("ExternalToolsMainTab.&Location___2")); //$NON-NLS-1$
-		label.setFont(font);
-		
-		locationField = new Text(composite, SWT.BORDER);
-		GridData data = new GridData(GridData.FILL_HORIZONTAL);
-		data.widthHint = IDialogConstants.ENTRY_FIELD_WIDTH;
-		locationField.setLayoutData(data);
-		locationField.setFont(font);
-		
-		Composite buttonComposite = new Composite(parent, SWT.NONE);
-		layout = new GridLayout();
-		layout.marginWidth = 0;
-		layout.marginHeight = 0;
-		layout.numColumns = 1;
-		gridData = new GridData(GridData.HORIZONTAL_ALIGN_END);
-		buttonComposite.setLayout(layout);
-		buttonComposite.setLayoutData(gridData);
-		buttonComposite.setFont(font);
-		
-		createVerticalSpacer(buttonComposite, 1);
-		
-		workspaceLocationButton= createPushButton(buttonComposite, ExternalToolsLaunchConfigurationMessages.getString("ExternalToolsMainTab.&Browse_Workspace..._3"), null); //$NON-NLS-1$
-		workspaceLocationButton.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent evt) {
-				handleWorkspaceLocationButtonSelected();
-			}
-		});
-		fileLocationButton= createPushButton(buttonComposite, ExternalToolsLaunchConfigurationMessages.getString("ExternalToolsMainTab.Brows&e_File_System..._4"), null); //$NON-NLS-1$
-		fileLocationButton.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent evt) {
-				handleLocationButtonSelected();
-			}
-		});
-	}
-	
-	/**
-	 * Creates the controls needed to edit the working directory
-	 * attribute of an external tool
-	 * 
-	 * @param parent the composite to create the controls in
-	 */
-	protected void createWorkDirectoryComponent(Composite parent) {
-		Font font = parent.getFont();
-		
-		Composite composite = new Composite(parent, SWT.NONE);
-		GridLayout layout = new GridLayout();
-		layout.marginWidth = 0;
-		layout.marginHeight = 0;
-		layout.numColumns = 1;
-		GridData gridData = new GridData(GridData.FILL_HORIZONTAL);
-		composite.setLayout(layout);
-		composite.setLayoutData(gridData);
-		
-		Label label = new Label(composite, SWT.NONE);
-		label.setText(getWorkingDirectoryLabel());
-		label.setFont(font);
-		
-		workDirectoryField = new Text(composite, SWT.BORDER);
-		GridData data = new GridData(GridData.FILL_HORIZONTAL);
-		data.widthHint = IDialogConstants.ENTRY_FIELD_WIDTH;
-		workDirectoryField.setLayoutData(data);
-		workDirectoryField.setFont(font);
-		
-		Composite buttonComposite = new Composite(parent, SWT.NONE);
-		layout = new GridLayout();
-		layout.marginWidth = 0;
-		layout.marginHeight = 0;
-		layout.numColumns = 1;
-		gridData = new GridData(GridData.HORIZONTAL_ALIGN_END);
-		buttonComposite.setLayout(layout);
-		buttonComposite.setLayoutData(gridData);
-		buttonComposite.setFont(font);
-		
-		createVerticalSpacer(buttonComposite, 1);
-		workspaceWorkingDirectoryButton= createPushButton(buttonComposite, ExternalToolsLaunchConfigurationMessages.getString("ExternalToolsMainTab.Browse_Wor&kspace..._6"), null); //$NON-NLS-1$
-		workspaceWorkingDirectoryButton.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent evt) {
-				handleWorkspaceWorkingDirectoryButtonSelected();
-			}
-		});
-		fileWorkingDirectoryButton= createPushButton(buttonComposite, ExternalToolsLaunchConfigurationMessages.getString("ExternalToolsMainTab.Browse_F&ile_System..._7"), null); //$NON-NLS-1$
-		fileWorkingDirectoryButton.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent evt) {
-				handleFileWorkingDirectoryButtonSelected();
-			}
-		});
-	}
-	/**
-	 * Return the String to use as the label for the working directory field.
-	 * @return String
-	 */
-	protected String getWorkingDirectoryLabel() {
-		return ExternalToolsLaunchConfigurationMessages.getString("ExternalToolsMainTab.Working_&Directory__5"); //$NON-NLS-1$
-	}
-	
-	/**
-	 * Creates the controls needed to edit the argument and
-	 * prompt for argument attributes of an external tool
-	 *
-	 * @param parent the composite to create the controls in
-	 */
-	protected void createArgumentComponent(Composite parent) {
-		Font font = parent.getFont();
-
-		Label label = new Label(parent, SWT.NONE);
-		label.setText(ExternalToolsLaunchConfigurationMessages.getString("ExternalToolsMainTab.&Arguments___1")); //$NON-NLS-1$
-		GridData data = new GridData(GridData.HORIZONTAL_ALIGN_FILL);
-		data.horizontalSpan = 2;
-		label.setLayoutData(data);
-		label.setFont(font);
-
-		argumentField = new Text(parent, SWT.MULTI | SWT.WRAP | SWT.BORDER | SWT.V_SCROLL);
-		data = new GridData(GridData.FILL_BOTH);
-		data.widthHint = IDialogConstants.ENTRY_FIELD_WIDTH;
-		data.heightHint= 40;
-		argumentField.setLayoutData(data);
-		argumentField.setFont(font);
-		argumentField.addModifyListener(modifyListener);
-
-		variableButton= createPushButton(parent, ExternalToolsLaunchConfigurationMessages.getString("ExternalToolsMainTab.Varia&bles..._2"), null); //$NON-NLS-1$
-		GridData gridData = new GridData(GridData.VERTICAL_ALIGN_BEGINNING | GridData.HORIZONTAL_ALIGN_FILL);
-		variableButton.setLayoutData(gridData);
-		variableButton.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent e) {
-				LaunchVariableSelectionDialog dialog= new LaunchVariableSelectionDialog(getShell());
-				if (dialog.open() == Window.OK) {
-					argumentField.insert(dialog.getForm().getSelectedVariable());
-				}
-			}
-		});
-
-		Label instruction = new Label(parent, SWT.NONE);
-		instruction.setText(ExternalToolsLaunchConfigurationMessages.getString("ExternalToolsMainTab.Note__Enclose_an_argument_containing_spaces_using_double-quotes_(__)._Not_applicable_for_variables._3")); //$NON-NLS-1$
-		data = new GridData(GridData.HORIZONTAL_ALIGN_FILL);
-		data.horizontalSpan = 2;
-		instruction.setLayoutData(data);
-		instruction.setFont(font);
-	}
-
-	/**
-	 * Creates the controls needed to edit the run in background
-	 * attribute of an external tool
-	 *
-	 * @param parent the composite to create the controls in
-	 */
-	protected void createRunBackgroundComponent(Composite parent) {
-		runBackgroundButton = new Button(parent, SWT.CHECK);
-		runBackgroundButton.setText(ExternalToolsLaunchConfigurationMessages.getString("ExternalToolsMainTab.Run_tool_in_bac&kground_4")); //$NON-NLS-1$
-		GridData data = new GridData(GridData.HORIZONTAL_ALIGN_FILL);
-		data.horizontalSpan = 2;
-		runBackgroundButton.setLayoutData(data);
-		runBackgroundButton.setFont(parent.getFont());
-		runBackgroundButton.addSelectionListener(getSelectionAdapter());
-	}
-	
-	/**
-	 * @see org.eclipse.debug.ui.ILaunchConfigurationTab#setDefaults(org.eclipse.debug.core.ILaunchConfigurationWorkingCopy)
-	 */
-	public void setDefaults(ILaunchConfigurationWorkingCopy configuration) {
-	}
-
-	/**
-	 * @see org.eclipse.debug.ui.ILaunchConfigurationTab#initializeFrom(org.eclipse.debug.core.ILaunchConfiguration)
-	 */
-	public void initializeFrom(ILaunchConfiguration configuration) {
-		updateLocation(configuration);
-		updateWorkingDirectory(configuration);
-		updateArgument(configuration);
-		updateRunBackground(configuration);
-	}
-	
-	protected void updateWorkingDirectory(ILaunchConfiguration configuration) {
-		String workingDir= ""; //$NON-NLS-1$
-		try {
-			workingDir= configuration.getAttribute(IExternalToolConstants.ATTR_WORKING_DIRECTORY, ""); //$NON-NLS-1$
-		} catch (CoreException ce) {
-			ExternalToolsPlugin.getDefault().log(ExternalToolsLaunchConfigurationMessages.getString("ExternalToolsMainTab.Error_reading_configuration_10"), ce); //$NON-NLS-1$
-		}
-		workDirectoryField.setText(workingDir);
-		workDirectoryField.addModifyListener(modifyListener);
-		
-	}
-	
-	protected void updateLocation(ILaunchConfiguration configuration) {
-		String location= ""; //$NON-NLS-1$
-		try {
-			location= configuration.getAttribute(IExternalToolConstants.ATTR_LOCATION, ""); //$NON-NLS-1$
-		} catch (CoreException ce) {
-			ExternalToolsPlugin.getDefault().log(ExternalToolsLaunchConfigurationMessages.getString("ExternalToolsMainTab.Error_reading_configuration_10"), ce); //$NON-NLS-1$
-		}
-		locationField.setText(location);
-		locationField.addModifyListener(modifyListener);
-	}
-
-	protected void updateArgument(ILaunchConfiguration configuration) {
-		String arguments= ""; //$NON-NLS-1$
-		try {
-			arguments= configuration.getAttribute(IExternalToolConstants.ATTR_TOOL_ARGUMENTS, ""); //$NON-NLS-1$
-		} catch (CoreException ce) {
-			ExternalToolsPlugin.getDefault().log(ExternalToolsLaunchConfigurationMessages.getString("ExternalToolsMainTab.Error_reading_configuration_7"), ce); //$NON-NLS-1$
-		}
-		argumentField.setText(arguments);
-	}
-
-	protected void updateRunBackground(ILaunchConfiguration configuration) {
-		boolean runInBackground= true;
-		try {
-			runInBackground= configuration.getAttribute(IExternalToolConstants.ATTR_RUN_IN_BACKGROUND, runInBackgroundAttributeDefaultValue);
-		} catch (CoreException ce) {
-			ExternalToolsPlugin.getDefault().log(ExternalToolsLaunchConfigurationMessages.getString("ExternalToolsMainTab.Error_reading_configuration_7"), ce); //$NON-NLS-1$
-		}
-		runBackgroundButton.setSelection(runInBackground);
-	}
-
-	/**
-	 * @see org.eclipse.debug.ui.ILaunchConfigurationTab#performApply(org.eclipse.debug.core.ILaunchConfigurationWorkingCopy)
-	 */
-	public void performApply(ILaunchConfigurationWorkingCopy configuration) {
-		String location= locationField.getText().trim();
-		if (location.length() == 0) {
-			configuration.setAttribute(IExternalToolConstants.ATTR_LOCATION, (String)null);
-		} else {
-			configuration.setAttribute(IExternalToolConstants.ATTR_LOCATION, location);
-		}
-		
-		String workingDirectory= workDirectoryField.getText().trim();
-		if (workingDirectory.length() == 0) {
-			configuration.setAttribute(IExternalToolConstants.ATTR_WORKING_DIRECTORY, (String)null);
-		} else {
-			configuration.setAttribute(IExternalToolConstants.ATTR_WORKING_DIRECTORY, workingDirectory);
-		}
-		
-		setAttribute(IExternalToolConstants.ATTR_RUN_IN_BACKGROUND, configuration, runBackgroundButton.getSelection(), runInBackgroundAttributeDefaultValue);
-
-		String arguments= argumentField.getText().trim();
-		if (arguments.length() == 0) {
-			configuration.setAttribute(IExternalToolConstants.ATTR_TOOL_ARGUMENTS, (String)null);
-		} else {
-			configuration.setAttribute(IExternalToolConstants.ATTR_TOOL_ARGUMENTS, arguments);
-		}
-	}
-
-	/**
-	 * @see org.eclipse.debug.ui.ILaunchConfigurationTab#getName()
-	 */
-	public String getName() {
-		return ExternalToolsLaunchConfigurationMessages.getString("ExternalToolsMainTab.&Main_17"); //$NON-NLS-1$
-	}
-	
-	/**
-	 * @see ILaunchConfigurationTab#isValid(org.eclipse.debug.core.ILaunchConfiguration)
-	 */
-	public boolean isValid(ILaunchConfiguration launchConfig) {
-		setErrorMessage(null);
-		setMessage(null);
-		return validateLocation() && validateWorkDirectory() && validateArguments();
-	}
-	
-	/**
-	 * Validates the content of the arguments field
-	 */
-	protected boolean validateArguments() {
-		String value= argumentField.getText().trim();
-		// Check if variables exist
-		if (!containsVariable(value)) {
-			return true;
-		}
-		String variableError= validateVariables(value);
-		if (variableError != null) {
-			setErrorMessage(variableError);
-			return false;
-		}
-		return true;
-	}
-	
-	/**
-	 * Validates the content of the location field.
-	 */
-	protected boolean validateLocation() {
-		String value = locationField.getText().trim();
-		if (value.length() < 1) {
-			setErrorMessage(ExternalToolsLaunchConfigurationMessages.getString("ExternalToolsMainTab.External_tool_location_cannot_be_empty_18")); //$NON-NLS-1$
-			setMessage(null);
-			return false;
-		}
-
-		// Check if variables exist
-		if (containsVariable(value)) {
-			String variableError= validateVariables(value);
-			if (variableError != null) {
-				setErrorMessage(variableError);
-				return false;
-			}
-			return true;
-		}
-		
-		File file = new File(value);
-		if (!file.exists()) { // The file does not exist.
-			setErrorMessage(ExternalToolsLaunchConfigurationMessages.getString("ExternalToolsMainTab.External_tool_location_does_not_exist_19")); //$NON-NLS-1$
-			return false;
-		}
-		if (!file.isFile()) {
-			setErrorMessage(ExternalToolsLaunchConfigurationMessages.getString("ExternalToolsMainTab.External_tool_location_specified_is_not_a_file_20")); //$NON-NLS-1$
-			return false;
-		}
-		return true;
-	}
-	
-	/**
-	 * Returns an error string to be displayed to the user if any variable
-	 * errors are found in the given string or <code>null</code> if no errors
-	 * are found.
-	 */
-	private String validateVariables(String value) {
-		int start= 0;
-		LaunchVariableUtil.VariableDefinition variable = LaunchVariableUtil.extractVariableDefinition(value, start);
-		while (variable.start != -1) {
-			if (variable.end == -1) {
-				return ExternalToolsLaunchConfigurationMessages.getString("ExternalToolsMainTab.Invalid_Expected_closing_}"); //$NON-NLS-1$
-			}
-			if (variable.name == null || variable.name.length() == 0) {
-				return ExternalToolsLaunchConfigurationMessages.getString("ExternalToolsMainTab.No_variable_specified"); //$NON-NLS-1$
-			}
-			ILaunchVariableManager manager= DebugPlugin.getDefault().getLaunchVariableManager();
-			if (manager.getContextVariable(variable.name) == null && manager.getSimpleVariable(variable.name) == null) {
-				return MessageFormat.format(ExternalToolsLaunchConfigurationMessages.getString("ExternalToolsMainTab.Unknown_variable"), new String[] {variable.name}); //$NON-NLS-1$
-			}
-			start= variable.end;
-			variable = LaunchVariableUtil.extractVariableDefinition(value, start);
-		}
-		return null;
-	}
-	
-	private boolean containsVariable(String value) {
-		return LaunchVariableUtil.extractVariableDefinition(value, 0).start != -1;
-	}
-
-	/**
-	 * Validates the content of the working directory field.
-	 */
-	protected boolean validateWorkDirectory() {
-		
-		String value = workDirectoryField.getText().trim();
-		if (value.length() <= 0) {
-			return true;
-		}
-		// Check if variables exist
-		if (containsVariable(value)) {
-			String variableError= validateVariables(value);
-			if (variableError != null) {
-				setErrorMessage(variableError);
-				return false;
-			}
-			return true;
-		}
-			
-		File file = new File(value);
-		if (!file.exists()) { // The directory does not exist.
-			setErrorMessage(ExternalToolsLaunchConfigurationMessages.getString("ExternalToolsMainTab.External_tool_working_directory_does_not_exist_or_is_invalid_21")); //$NON-NLS-1$
-			return false;
-		}
-		if (!file.isDirectory()) {
-			setErrorMessage(ExternalToolsLaunchConfigurationMessages.getString("ExternalToolsMainTab.Not_a_directory")); //$NON-NLS-1$
-			return false;
-		}
-		return true;
-	}
-	
-	protected void handleLocationButtonSelected() {
-		FileDialog fileDialog = new FileDialog(getShell(), SWT.NONE);
-		fileDialog.setFileName(locationField.getText());
-		String text= fileDialog.open();
-		if (text != null) {
-			locationField.setText(text);
-		}
-	}
-	
-	/**
-	 * Prompts the user for a workspace location within the workspace and sets
-	 * the location as a String containing the workspace_loc variable or
-	 * <code>null</code> if no location was obtained from the user.
-	 */
-	protected void handleWorkspaceLocationButtonSelected() {
-		ResourceSelectionDialog dialog;
-		dialog = new ResourceSelectionDialog(getShell(), ResourcesPlugin.getWorkspace().getRoot(), ExternalToolsLaunchConfigurationMessages.getString("ExternalToolsMainTab.Select_a_resource_22")); //$NON-NLS-1$
-		dialog.open();
-		Object[] results = dialog.getResult();
-		if (results == null || results.length < 1) {
-			return;
-		}
-		IResource resource = (IResource)results[0];
-		locationField.setText(LaunchVariableUtil.newVariableExpression(ILaunchVariableManager.VAR_WORKSPACE_LOC, resource.getFullPath().toString()));
-	}
-	
-	/**
-	 * Prompts the user for a working directory location within the workspace
-	 * and sets the working directory as a String containing the workspace_loc
-	 * variable or <code>null</code> if no location was obtained from the user.
-	 */
-	protected void handleWorkspaceWorkingDirectoryButtonSelected() {
-		ContainerSelectionDialog containerDialog;
-		containerDialog = new ContainerSelectionDialog(
-			getShell(), 
-			ResourcesPlugin.getWorkspace().getRoot(),
-			false,
-			ExternalToolsLaunchConfigurationMessages.getString("ExternalToolsMainTab.&Select_a_directory__23")); //$NON-NLS-1$
-		containerDialog.open();
-		Object[] resource = containerDialog.getResult();
-		String text= null;
-		if (resource != null && resource.length > 0) {
-			text= LaunchVariableUtil.newVariableExpression(ILaunchVariableManager.VAR_WORKSPACE_LOC, ((IPath)resource[0]).toString());
-		}
-		if (text != null) {
-			workDirectoryField.setText(text);
-		}
-	}
-	
-	protected void handleFileWorkingDirectoryButtonSelected() {
-		DirectoryDialog dialog = new DirectoryDialog(getShell(), SWT.SAVE);
-		dialog.setMessage(ExternalToolsLaunchConfigurationMessages.getString("ExternalToolsMainTab.&Select_a_directory__23")); //$NON-NLS-1$
-		dialog.setFilterPath(workDirectoryField.getText());
-		String text= dialog.open();
-		if (text != null) {
-			workDirectoryField.setText(text);
-		}
-	}
-
-	/**
-	 * @see org.eclipse.debug.ui.ILaunchConfigurationTab#getImage()
-	 */
-	public Image getImage() {
-		return ExternalToolsImages.getImage(IExternalToolConstants.IMG_TAB_MAIN);
-	}
-	
-	/**
-	 * Method getSelectionAdapter.
-	 * @return SelectionListener
-	 */
-	protected SelectionListener getSelectionAdapter() {
-		if (selectionAdapter == null) {
-			selectionAdapter= new SelectionAdapter() {
-				public void widgetSelected(SelectionEvent e) {
-					updateLaunchConfigurationDialog();
-				}
-			};
-		}
-		return selectionAdapter;
-	}
-	
-}
diff --git a/org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/launchConfigurations/ExternalToolsUtil.java b/org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/launchConfigurations/ExternalToolsUtil.java
deleted file mode 100644
index 21f6f84..0000000
--- a/org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/launchConfigurations/ExternalToolsUtil.java
+++ /dev/null
@@ -1,255 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Keith Seitz (keiths@redhat.com) - environment variables contribution (Bug 27243(
- *******************************************************************************/
-package org.eclipse.ui.externaltools.internal.launchConfigurations;
-
-
-import java.io.File;
-import java.text.MessageFormat;
-import java.util.Map;
-
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.MultiStatus;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.debug.core.DebugPlugin;
-import org.eclipse.debug.core.ILaunchConfiguration;
-import org.eclipse.debug.core.variables.LaunchVariableUtil;
-import org.eclipse.debug.ui.launchVariables.RefreshTab;
-import org.eclipse.debug.ui.launchVariables.LaunchVariableContextManager;
-import org.eclipse.ui.externaltools.internal.model.IExternalToolConstants;
-import org.eclipse.ui.externaltools.internal.registry.ExternalToolMigration;
-
-/**
- * Utilities for external tool launch configurations.
- * <p>
- * This class it not intended to be instantiated.
- * </p>
- */
-public class ExternalToolsUtil {
-
-	private static final String LAUNCH_CONFIG_HANDLE = "LaunchConfigHandle"; //$NON-NLS-1$
-
-	/**
-	 * Not to be instantiated.
-	 */
-	private ExternalToolsUtil() {
-	}
-
-	/**
-	 * Throws a core exception with an error status object built from
-	 * the given message, lower level exception, and error code.
-	 * 
-	 * @param message the status message
-	 * @param exception lower level exception associated with the
-	 *  error, or <code>null</code> if none
-	 * @param code error code
-	 */
-	protected static void abort(String message, Throwable exception, int code) throws CoreException {
-		throw new CoreException(new Status(IStatus.ERROR, IExternalToolConstants.PLUGIN_ID, code, message, exception));
-	}
-	
-	/**
-	 * Expands and returns the location attribute of the given launch
-	 * configuration, based on the given variable context. The location is
-	 * verified to point to an existing file, in the local file system.
-	 * 
-	 * @param configuration launch configuration
-	 * @param context context used to expand variables
-	 * @return an absolute path to a file in the local file system  
-	 * @throws CoreException if unable to retrieve the associated launch
-	 * configuration attribute, if unable to resolve any variables, or if the
-	 * resolved location does not point to an existing file in the local file
-	 * system
-	 */
-	public static IPath getLocation(ILaunchConfiguration configuration) throws CoreException {
-		String location = configuration.getAttribute(IExternalToolConstants.ATTR_LOCATION, (String) null);
-		if (location == null) {
-			abort(MessageFormat.format(ExternalToolsLaunchConfigurationMessages.getString("ExternalToolsUtil.Location_not_specified_by_{0}_1"), new String[] { configuration.getName()}), null, 0); //$NON-NLS-1$
-		} else {
-			MultiStatus status = new MultiStatus(IExternalToolConstants.PLUGIN_ID, 0, ExternalToolsLaunchConfigurationMessages.getString("ExternalToolsUtil.Could_not_resolve_location._3"), null); //$NON-NLS-1$
-			String expandedLocation = LaunchVariableUtil.expandVariables(location, status, LaunchVariableContextManager.getDefault().getVariableContext());
-			if (status.isOK()) {
-				if (expandedLocation == null || expandedLocation.length() == 0) {
-					String msg = MessageFormat.format(ExternalToolsLaunchConfigurationMessages.getString("ExternalToolsUtil.invalidLocation_{0}"), new Object[] { configuration.getName()}); //$NON-NLS-1$
-					abort(msg, null, 0);
-				} else {
-					File file = new File(expandedLocation);
-					if (file.isFile()) {
-						return new Path(expandedLocation);
-					} else {
-						String msg = MessageFormat.format(ExternalToolsLaunchConfigurationMessages.getString("ExternalToolsUtil.invalidLocation_{0}"), new Object[] { configuration.getName()}); //$NON-NLS-1$
-						abort(msg, null, 0);
-					}
-				}
-			} else {
-				throw new CoreException(status);
-			}
-		}
-		// execution will not reach here
-		return null;
-	}
-	
-	/**
-	 * Returns a boolean specifying whether or not output should be captured for
-	 * the given configuration
-	 * 
-	 * @param configuration the configuration from which the value will be
-	 * extracted
-	 * @return boolean specifying whether or not output should be captured
-	 * @throws CoreException if unable to access the associated attribute
-	 */
-	public static boolean getCaptureOutput(ILaunchConfiguration configuration) throws CoreException {
-		return configuration.getAttribute(IExternalToolConstants.ATTR_CAPTURE_OUTPUT, true);
-	}
-
-	/**
-	 * Expands and returns the working directory attribute of the given launch
-	 * configuration, based on the given variable context. Returns
-	 * <code>null</code> if a working directory is not specified. If specified,
-	 * the working is verified to point to an existing directory in the local
-	 * file system.
-	 * 
-	 * @param configuration launch configuration
-	 * @param context context used to expand variables
-	 * @return an absolute path to a directory in the local file system, or
-	 * <code>null</code> if unspecified
-	 * @throws CoreException if unable to retrieve the associated launch
-	 * configuration attribute, if unable to resolve any variables, or if the
-	 * resolved location does not point to an existing directory in the local
-	 * file system
-	 */
-	public static IPath getWorkingDirectory(ILaunchConfiguration configuration) throws CoreException {
-		String location = configuration.getAttribute(IExternalToolConstants.ATTR_WORKING_DIRECTORY, (String) null);
-		if (location != null) {
-			MultiStatus status = new MultiStatus(IExternalToolConstants.PLUGIN_ID, 0, ExternalToolsLaunchConfigurationMessages.getString("ExternalToolsUtil.Could_not_resolve_working_directory._4"), null); //$NON-NLS-1$
-			String expandedLocation = LaunchVariableUtil.expandVariables(location, status, LaunchVariableContextManager.getDefault().getVariableContext());
-			if (status.isOK()) {
-				if (expandedLocation != null && expandedLocation.length() > 0) {
-					File path = new File(expandedLocation);
-					if (path.isDirectory()) {
-						return new Path(expandedLocation);
-					} else {
-						String msg = MessageFormat.format(ExternalToolsLaunchConfigurationMessages.getString("ExternalToolsUtil.invalidDirectory_{0}"), new Object[] { expandedLocation, configuration.getName()}); //$NON-NLS-1$
-						abort(msg, null, 0);
-					}
-				}
-			} else {
-				throw new CoreException(status);
-			}
-		}
-		return null;
-	}
-
-	/**
-	 * Expands and returns the arguments attribute of the given launch
-	 * configuration, based on the given variable context. Returns
-	 * <code>null</code> if arguments are not specified.
-	 * 
-	 * @param configuration launch configuration
-	 * @param context context used to expand variables
-	 * @return an array of resolved arguments, or <code>null</code> if
-	 * unspecified
-	 * @throws CoreException if unable to retrieve the associated launch
-	 * configuration attribute, or if unable to resolve any variables
-	 */
-	public static String[] getArguments(ILaunchConfiguration configuration) throws CoreException {
-		String args = configuration.getAttribute(IExternalToolConstants.ATTR_TOOL_ARGUMENTS, (String) null);
-		if (args != null) {
-			MultiStatus status = new MultiStatus(IExternalToolConstants.PLUGIN_ID, 0, ExternalToolsLaunchConfigurationMessages.getString("ExternalToolsUtil.Could_not_resolve_an_argument._1"), null); //$NON-NLS-1$
-			String[] expandedArgs = LaunchVariableUtil.expandStrings(args, status, LaunchVariableContextManager.getDefault().getVariableContext());
-			if (status.isOK()) {
-				return expandedArgs;
-			} else {
-				throw new CoreException(status);
-			}
-		}
-		return null;
-	}
-
-	/**
-	 * Returns whether the given configuration is to be run in the background.
-	 * 
-	 * @param configuration the configuration for which the background state should
-	 * 		be determined.
-	 * @return whether the given configuration is to be run in the background
-	 * @throws CoreException if unable to access the associated attribute
-	 */
-	public static boolean isBackground(ILaunchConfiguration configuration) throws CoreException {
-		boolean defaultValue= true;
-		if (configuration.getCategory().equals(IExternalToolConstants.ID_EXTERNAL_TOOLS_BUILDER_LAUNCH_CATEGORY)) {
-			// Project builders are not run in the background by default.
-			defaultValue= false;
-		}
-		return configuration.getAttribute(IExternalToolConstants.ATTR_RUN_IN_BACKGROUND, defaultValue);
-	}
-
-	/**
-	 * Returns whether the given launch configuration is enabled. This property
-	 * is intended only to apply to external tool builder configurations and
-	 * determines whether the project builder will launch the configuration
-	 * when it builds.
-	 *  
-	 * @param configuration the configuration for which the enabled state should
-	 * 		be determined.
-	 * @return whether the given configuration is enabled to be run when a build occurs.
-	 * @throws CoreException if unable to access the associated attribute
-	 */
-	public static boolean isBuilderEnabled(ILaunchConfiguration configuration) throws CoreException {
-		return configuration.getAttribute(IExternalToolConstants.ATTR_BUILDER_ENABLED, true);
-	}
-	
-	/**
-	 * Returns the collection of resources for the build scope as specified by the given launch configuration.
-	 * 
-	 * @param configuration launch configuration
-	 * @param context context used to expand variables
-	 * @param monitor progress monitor
-	 * @throws CoreException if an exception occurs while retrieving the resources
-	 */
-	public static IResource[] getResourcesForBuildScope(ILaunchConfiguration configuration, IProgressMonitor monitor) throws CoreException {
-		String scope = configuration.getAttribute(IExternalToolConstants.ATTR_BUILD_SCOPE, (String) null);
-		if (scope == null) {
-			return null;
-		}
-	
-		return RefreshTab.expandResources(scope, monitor);
-	
-	}
-
-	/**
-	 * Returns a launch configuration from the given ICommand arguments. If the
-	 * given arguments are from an old-style external tool, an unsaved working
-	 * copy will be created from the arguments and returned.
-	 * 
-	 * @param commandArgs the builder ICommand arguments
-	 * @param newName a new name for the config if the one in the command is
-	 * invalid
-	 * @return a launch configuration, a launch configuration working copy, or
-	 * <code>null</code> if not possible.
-	 */
-	public static ILaunchConfiguration configFromBuildCommandArgs(Map commandArgs) {
-		String configHandle = (String) commandArgs.get(LAUNCH_CONFIG_HANDLE);
-		if (configHandle == null) {
-			// Probably an old-style external tool. Try to migrate.
-			return ExternalToolMigration.configFromArgumentMap(commandArgs);
-		}
-		try {
-			return DebugPlugin.getDefault().getLaunchManager().getLaunchConfiguration(configHandle);
-		} catch (CoreException e) {
-			return null;
-		}
-	}
-}
diff --git a/org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/launchConfigurations/WorkingSetComparator.java b/org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/launchConfigurations/WorkingSetComparator.java
deleted file mode 100644
index 9516fec..0000000
--- a/org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/launchConfigurations/WorkingSetComparator.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.externaltools.internal.launchConfigurations;
-
-import java.util.Comparator;
-
-public class WorkingSetComparator implements Comparator {
-
-	/* (non-Javadoc)
-	 * @see java.util.Comparator#compare(java.lang.Object, java.lang.Object)
-	 */
-	public int compare(Object o1, Object o2) {
-		String one= (String)o1;
-		String two= (String)o2;
-		int i1 = 0;
-		int i2 = 0;
-		int l1 = one.length();
-		int l2 = two.length();
-		char ch1 = ' ';
-		char ch2 = ' ';
-		while (i1 < l1 && i2 < l2) {
-			while (i1 < l1 && Character.isWhitespace(ch1 = one.charAt(i1))) {
-				i1++;
-			}
-			while (i2 < l2 && Character.isWhitespace(ch2 = two.charAt(i2))) {
-				i2++;
-			}
-			if (i1 == l1 && i2 == l2) {
-				return 0;
-			}
-			if (ch1 != ch2) {
-				return -1;
-			}			
-			i1++;
-			i2++;
-		}
-		return 0;
-	}
-}
diff --git a/org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/menu/ExternalToolMenuDelegate.java b/org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/menu/ExternalToolMenuDelegate.java
deleted file mode 100644
index 276445a..0000000
--- a/org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/menu/ExternalToolMenuDelegate.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.externaltools.internal.menu;
-
-
-import org.eclipse.debug.ui.actions.AbstractLaunchToolbarAction;
-import org.eclipse.ui.externaltools.internal.model.IExternalToolConstants;
-
-/**
- * This action delegate is responsible for producing the
- * Run > External Tools sub menu contents, which includes
- * an items to run last tool, favorite tools, and show the
- * external tools view.
- */
-public class ExternalToolMenuDelegate extends AbstractLaunchToolbarAction {
-	
-	/**
-	 * Creates the action delegate
-	 */
-	public ExternalToolMenuDelegate() {
-		super(IExternalToolConstants.ID_EXTERNAL_TOOLS_LAUNCH_GROUP);
-	}
-
-}
diff --git a/org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/model/ExternalToolBuilder.java b/org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/model/ExternalToolBuilder.java
deleted file mode 100644
index 1e2b013..0000000
--- a/org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/model/ExternalToolBuilder.java
+++ /dev/null
@@ -1,245 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.externaltools.internal.model;
-
-
-import java.text.MessageFormat;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Map;
-import java.util.StringTokenizer;
-
-import org.eclipse.core.resources.ICommand;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.IResourceDelta;
-import org.eclipse.core.resources.IncrementalProjectBuilder;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.debug.core.ILaunchConfiguration;
-import org.eclipse.debug.core.ILaunchManager;
-import org.eclipse.ui.externaltools.internal.launchConfigurations.ExternalToolsUtil;
-
-/**
- * This project builder implementation will run an external tool or tools during the
- * build process. 
- * <p>
- * Note that there is only ever one instance of ExternalToolBuilder per project,
- * and the external tool to run is specified in the builder's arguments.
- * </p>
- */
-public final class ExternalToolBuilder extends IncrementalProjectBuilder {
-	public static final String ID = "org.eclipse.ui.externaltools.ExternalToolBuilder"; //$NON-NLS-1$;
-
-	private static final String BUILD_TYPE_SEPARATOR = ","; //$NON-NLS-1$
-	private static final int[] DEFAULT_BUILD_TYPES= new int[] {
-									IncrementalProjectBuilder.INCREMENTAL_BUILD,
-									IncrementalProjectBuilder.FULL_BUILD};
-
-	private static String buildType = IExternalToolConstants.BUILD_TYPE_NONE;
-	
-	private List projectsWithinScope;
-	
-	private boolean buildKindCompatible(int kind, ILaunchConfiguration config) throws CoreException {
-		int[] buildKinds = buildTypesToArray(config.getAttribute(IExternalToolConstants.ATTR_RUN_BUILD_KINDS, "")); //$NON-NLS-1$
-		for (int j = 0; j < buildKinds.length; j++) {
-			if (kind == buildKinds[j]) {
-				return true;
-			}
-		}
-		return false;
-	}
-	
-	/* (non-Javadoc)
-	 * Method declared on IncrementalProjectBuilder.
-	 */
-	protected IProject[] build(int kind, Map args, IProgressMonitor monitor) throws CoreException {				
-		if (kind == FULL_BUILD) {
-			ILaunchConfiguration config = ExternalToolsUtil.configFromBuildCommandArgs(args);
-			if (config != null && buildKindCompatible(kind, config) && configEnabled(config)) {
-				launchBuild(kind, config, monitor);
-			}
-			return getProjectsWithinScope();
-		}
-	
-		//need to build all external tools from one builder (see bug 39713)
-		//if not a full build
-		ICommand[] commands = getProject().getDescription().getBuildSpec();
-		projectsWithinScope= new ArrayList();
-		for (int i = 0; i < commands.length; i++) {
-			if (ID.equals(commands[i].getBuilderName())){
-				ILaunchConfiguration config = ExternalToolsUtil.configFromBuildCommandArgs(commands[i].getArguments());
-				if (config != null && buildKindCompatible(kind, config) && configEnabled(config)) {
-					doBuild(kind, config, monitor);
-				}
-			}
-		}
-		return getProjectsWithinScope();
-	}
-
-	/**
-	 * Returns whether the given builder config is enabled or not.
-	 * 
-	 * @param config the config to examine
-	 * @return whether the config is enabled
-	 */
-	private boolean configEnabled(ILaunchConfiguration config) {
-		try {
-			return ExternalToolsUtil.isBuilderEnabled(config);
-		} catch (CoreException e) {
-			ExternalToolsPlugin.getDefault().log(e);
-		}
-		return true;
-	}
-
-	private IProject[] getProjectsWithinScope() {
-		if (projectsWithinScope == null || projectsWithinScope.isEmpty()) {
-			projectsWithinScope = null;
-			return null;
-		}
-		return (IProject[])projectsWithinScope.toArray(new IProject[projectsWithinScope.size()]);
-	}
-
-	private void doBuild(int kind, ILaunchConfiguration config, IProgressMonitor monitor) throws CoreException {
-		boolean buildForChange = true;
-		IResource[] resources = ExternalToolsUtil.getResourcesForBuildScope(config, monitor);
-		if (resources != null && resources.length > 0) {
-			for (int i = 0; i < resources.length; i++) {
-				IResource resource = resources[i];
-				projectsWithinScope.add(resource.getProject());
-			}
-			buildForChange = buildScopeIndicatesBuild(resources);
-		}
-
-		if (buildForChange) {
-			launchBuild(kind, config, monitor);
-		}
-	}
-	
-	private void launchBuild(int kind, ILaunchConfiguration config, IProgressMonitor monitor) throws CoreException {
-		monitor.subTask(MessageFormat.format(ExternalToolsModelMessages.getString("ExternalToolBuilder.Running_{0}..._1"), new String[] { config.getName()})); //$NON-NLS-1$
-		buildStarted(kind);
-		config.launch(ILaunchManager.RUN_MODE, monitor);
-		buildEnded();
-	}
-
-	/**
-	 * Returns the build type being performed if the
-	 * external tool is being run as a project builder.
-	 * 
-	 * @return one of the <code>IExternalToolConstants.BUILD_TYPE_*</code> constants.
-	 */
-	public static String getBuildType() {
-		return buildType;
-	}
-	
-	/**
-	 * Stores the currently active build kind when a build begins
-	 * @param buildKind
-	 */
-	private void buildStarted(int buildKind) {
-		switch (buildKind) {
-			case IncrementalProjectBuilder.INCREMENTAL_BUILD :
-				buildType = IExternalToolConstants.BUILD_TYPE_INCREMENTAL;
-				break;
-			case IncrementalProjectBuilder.FULL_BUILD :
-				buildType = IExternalToolConstants.BUILD_TYPE_FULL;
-				break;
-			case IncrementalProjectBuilder.AUTO_BUILD :
-				buildType = IExternalToolConstants.BUILD_TYPE_AUTO;
-				break;
-			default :
-				buildType = IExternalToolConstants.BUILD_TYPE_NONE;
-				break;
-		}
-	}
-	
-	/**
-	 * Clears the current build kind when a build finishes.
-	 */
-	private void buildEnded() {
-		buildType= IExternalToolConstants.BUILD_TYPE_NONE;
-	}
-	
-	private boolean buildScopeIndicatesBuild(IResource[] resources) {
-		for (int i = 0; i < resources.length; i++) {
-			IResourceDelta delta = getDelta(resources[i].getProject());
-			if (delta == null) {
-				//project just added to the workspace..no previous build tree
-				return true;
-			} else {	
-				IPath path= resources[i].getProjectRelativePath();
-				IResourceDelta change= delta.findMember(path);
-				if (change != null) {
-					return true;
-				}
-			}
-		}
-		return false;
-	}
-
-	/**
-	 * Converts the build types string into an array of
-	 * build kinds.
-	 *
-	 * @param buildTypes the string of built types to convert
-	 * @return the array of build kinds.
-	 */
-	public static int[] buildTypesToArray(String buildTypes) {
-		if (buildTypes == null || buildTypes.length() == 0) {
-			return DEFAULT_BUILD_TYPES;
-		}
-		
-		int count = 0;
-		boolean incremental = false;
-		boolean full = false;
-		boolean auto = false;
-
-		StringTokenizer tokenizer = new StringTokenizer(buildTypes, BUILD_TYPE_SEPARATOR);
-		while (tokenizer.hasMoreTokens()) {
-			String token = tokenizer.nextToken();
-			if (IExternalToolConstants.BUILD_TYPE_INCREMENTAL.equals(token)) {
-				if (!incremental) {
-					incremental = true;
-					count++;
-				}
-			} else if (IExternalToolConstants.BUILD_TYPE_FULL.equals(token)) {
-				if (!full) {
-					full = true;
-					count++;
-				}
-			} else if (IExternalToolConstants.BUILD_TYPE_AUTO.equals(token)) {
-				if (!auto) {
-					auto = true;
-					count++;
-				}
-			}
-		}
-
-		int[] results = new int[count];
-		count = 0;
-		if (incremental) {
-			results[count] = IncrementalProjectBuilder.INCREMENTAL_BUILD;
-			count++;
-		}
-		if (full) {
-			results[count] = IncrementalProjectBuilder.FULL_BUILD;
-			count++;
-		}
-		if (auto) {
-			results[count] = IncrementalProjectBuilder.AUTO_BUILD;
-			count++;
-		}
-
-		return results;
-	}
-}
diff --git a/org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/model/ExternalToolsImages.java b/org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/model/ExternalToolsImages.java
deleted file mode 100644
index f254e78..0000000
--- a/org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/model/ExternalToolsImages.java
+++ /dev/null
@@ -1,220 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.externaltools.internal.model;
-
-import java.net.MalformedURLException;
-import java.net.URL;
-import java.util.HashMap;
-import java.util.Map;
-
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.resource.CompositeImageDescriptor;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.resource.ImageRegistry;
-import org.eclipse.swt.graphics.Image;
-
-/**
- * The images provided by the external tools plugin.
- */
-public class ExternalToolsImages {
-
-	/** 
-	 * The image registry containing <code>Image</code>s.
-	 */
-	private static ImageRegistry imageRegistry;
-	
-	/**
-	 * The registry for composite images
-	 */
-	private static ImageDescriptorRegistry imageDescriptorRegistry;
-	
-	/**
-	 * A table of all the <code>ImageDescriptor</code>s.
-	 */
-	private static Map imageDescriptors;
-
-	/* Declare Common paths */
-	private static URL ICON_BASE_URL= null;
-
-	static {
-		String pathSuffix = "icons/full/"; //$NON-NLS-1$
-			
-		try {
-			ICON_BASE_URL= new URL(ExternalToolsPlugin.getDefault().getDescriptor().getInstallURL(), pathSuffix);
-		} catch (MalformedURLException e) {
-			// do nothing
-		}
-	}
-
-	// Use IPath and toOSString to build the names to ensure they have the slashes correct
-	private final static String OBJECT= "obj16/"; //basic colors - size 16x16 //$NON-NLS-1$
-	
-	/**
-	 * Declare all images
-	 */
-	private static void declareImages() {		
-		// Objects
-		declareRegistryImage(IExternalToolConstants.IMG_TAB_MAIN, OBJECT + "main_tab.gif"); //$NON-NLS-1$
-	}
-
-	/**
-	 * Declare an Image in the registry table.
-	 * @param key 	The key to use when registering the image
-	 * @param path	The path where the image can be found. This path is relative to where
-	 *				this plugin class is found (i.e. typically the packages directory)
-	 */
-	private final static void declareRegistryImage(String key, String path) {
-		ImageDescriptor desc= ImageDescriptor.getMissingImageDescriptor();
-		try {
-			desc= ImageDescriptor.createFromURL(makeIconFileURL(path));
-		} catch (MalformedURLException me) {
-		}
-		imageRegistry.put(key, desc);
-		imageDescriptors.put(key, desc);
-	}
-	
-	/**
-	 * Returns the ImageRegistry.
-	 */
-	public static ImageRegistry getImageRegistry() {
-		if (imageRegistry == null) {
-			initializeImageRegistry();
-		}
-		return imageRegistry;
-	}
-
-	/**
-	 *	Initialize the image registry by declaring all of the required
-	 *	graphics. This involves creating JFace image descriptors describing
-	 *	how to create/find the image should it be needed.
-	 *	The image is not actually allocated until requested.
-	 *
-	 * 	Prefix conventions
-	 *		Wizard Banners			WIZBAN_
-	 *		Preference Banners		PREF_BAN_
-	 *		Property Page Banners	PROPBAN_
-	 *		Color toolbar			CTOOL_
-	 *		Enable toolbar			ETOOL_
-	 *		Disable toolbar			DTOOL_
-	 *		Local enabled toolbar	ELCL_
-	 *		Local Disable toolbar	DLCL_
-	 *		Object large			OBJL_
-	 *		Object small			OBJS_
-	 *		View 					VIEW_
-	 *		Product images			PROD_
-	 *		Misc images				MISC_
-	 *
-	 *	Where are the images?
-	 *		The images (typically gifs) are found in the same location as this plugin class.
-	 *		This may mean the same package directory as the package holding this class.
-	 *		The images are declared using this.getClass() to ensure they are looked up via
-	 *		this plugin class.
-	 *	@see JFace's ImageRegistry
-	 */
-	public static ImageRegistry initializeImageRegistry() {
-		imageRegistry= new ImageRegistry(ExternalToolsPlugin.getStandardDisplay());
-		imageDescriptors = new HashMap(30);
-		declareImages();
-		return imageRegistry;
-	}
-
-	/**
-	 * Returns the <code>Image<code> identified by the given key,
-	 * or <code>null</code> if it does not exist.
-	 */
-	public static Image getImage(String key) {
-		return getImageRegistry().get(key);
-	}
-	
-	/**
-	 * Returns the <code>ImageDescriptor<code> identified by the given key,
-	 * or <code>null</code> if it does not exist.
-	 */
-	public static ImageDescriptor getImageDescriptor(String key) {
-		if (imageDescriptors == null) {
-			initializeImageRegistry();
-		}
-		return (ImageDescriptor)imageDescriptors.get(key);
-	}
-	
-	private static URL makeIconFileURL(String iconPath) throws MalformedURLException {
-		if (ICON_BASE_URL == null) {
-			throw new MalformedURLException();
-		}
-			
-		return new URL(ICON_BASE_URL, iconPath);
-	}
-	
-	/**
-	 * Sets the three image descriptors for enabled, disabled, and hovered to an action. The actions
-	 * are retrieved from the *lcl16 folders.
-	 */
-	public static void setLocalImageDescriptors(IAction action, String iconName) {
-		setImageDescriptors(action, "lcl16", iconName); //$NON-NLS-1$
-	}
-	
-	private static void setImageDescriptors(IAction action, String type, String relPath) {
-		
-		try {
-			ImageDescriptor id= ImageDescriptor.createFromURL(makeIconFileURL("d" + type, relPath)); //$NON-NLS-1$
-			if (id != null)
-				action.setDisabledImageDescriptor(id);
-		} catch (MalformedURLException e) {
-			ExternalToolsPlugin.getDefault().log(e);
-		}
-
-		try {
-			ImageDescriptor id= ImageDescriptor.createFromURL(makeIconFileURL("c" + type, relPath)); //$NON-NLS-1$
-			if (id != null)
-				action.setHoverImageDescriptor(id);
-		} catch (MalformedURLException e) {
-			ExternalToolsPlugin.getDefault().log(e);
-		}
-
-		action.setImageDescriptor(create("e" + type, relPath)); //$NON-NLS-1$
-	}
-	
-	private static URL makeIconFileURL(String prefix, String name) throws MalformedURLException {
-		if (ICON_BASE_URL == null) {
-			throw new MalformedURLException();
-		}
-		
-		StringBuffer buffer= new StringBuffer(prefix);
-		buffer.append('/');
-		buffer.append(name);
-		return new URL(ICON_BASE_URL, buffer.toString());
-	}
-	
-	private static ImageDescriptor create(String prefix, String name) {
-		try {
-			return ImageDescriptor.createFromURL(makeIconFileURL(prefix, name));
-		} catch (MalformedURLException e) {
-			ExternalToolsPlugin.getDefault().log(e);
-			return ImageDescriptor.getMissingImageDescriptor();
-		}
-	}
-	
-	/** 
-	 * Returns the image for the given composite descriptor. 
-	 */
-	public static Image getImage(CompositeImageDescriptor imageDescriptor) {
-		if (imageDescriptorRegistry == null) {
-			imageDescriptorRegistry = new ImageDescriptorRegistry();	
-		}
-		return imageDescriptorRegistry.get(imageDescriptor);
-	}
-	
-	public static void disposeImageDescriptorRegistry() {
-		if (imageDescriptorRegistry != null) {
-			imageDescriptorRegistry.dispose(); 
-		}
-	}
-}
\ No newline at end of file
diff --git a/org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/model/ExternalToolsModelMessages.java b/org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/model/ExternalToolsModelMessages.java
deleted file mode 100644
index 75bd41e..0000000
--- a/org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/model/ExternalToolsModelMessages.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.externaltools.internal.model;
-
-import java.util.MissingResourceException;
-import java.util.ResourceBundle;
-
-public class ExternalToolsModelMessages {
-
-	private static final String BUNDLE_NAME = "org.eclipse.ui.externaltools.internal.model.ExternalToolsModelMessages"; //$NON-NLS-1$
-
-	private static final ResourceBundle RESOURCE_BUNDLE = ResourceBundle.getBundle(BUNDLE_NAME);
-
-	private ExternalToolsModelMessages() {
-	}
-
-	public static String getString(String key) {
-		try {
-			return RESOURCE_BUNDLE.getString(key);
-		} catch (MissingResourceException e) {
-			return '!' + key + '!';
-		}
-	}
-}
diff --git a/org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/model/ExternalToolsModelMessages.properties b/org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/model/ExternalToolsModelMessages.properties
deleted file mode 100644
index 697f036..0000000
--- a/org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/model/ExternalToolsModelMessages.properties
+++ /dev/null
@@ -1,13 +0,0 @@
-###############################################################################
-# Copyright (c) 2000, 2003 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials 
-# are made available under the terms of the Common Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/cpl-v10.html
-# 
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-
-ImageDescriptorRegistry.Allocating_image_for_wrong_display_1=Allocating image for wrong display
-ExternalToolBuilder.Running_{0}..._1=Running {0}...
diff --git a/org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/model/ExternalToolsPlugin.java b/org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/model/ExternalToolsPlugin.java
deleted file mode 100644
index 243781b..0000000
--- a/org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/model/ExternalToolsPlugin.java
+++ /dev/null
@@ -1,165 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.externaltools.internal.model;
-
-
-import java.net.MalformedURLException;
-import java.net.URL;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPluginDescriptor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.jface.preference.IPreferenceStore;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.resource.ImageRegistry;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.plugin.AbstractUIPlugin;
-
-/**
- * External tools plug-in class
- */
-public final class ExternalToolsPlugin extends AbstractUIPlugin {
-	/**
-	 * Status representing no problems encountered during operation.
-	 */
-	public static final IStatus OK_STATUS = new Status(IStatus.OK, IExternalToolConstants.PLUGIN_ID, 0, "", null); //$NON-NLS-1$
-
-	private static ExternalToolsPlugin plugin;
-	
-	private static final String EMPTY_STRING= ""; //$NON-NLS-1$
-
-	/**
-	 * Create an instance of the External Tools plug-in.
-	 */
-	public ExternalToolsPlugin(IPluginDescriptor descriptor) {
-		super(descriptor);
-		plugin = this;
-	}
-
-	/**
-	 * Returns the default instance of the receiver.
-	 * This represents the runtime plugin.
-	 */
-	public static ExternalToolsPlugin getDefault() {
-		return plugin;
-	}
-
-	/**
-	 * Returns a new <code>IStatus</code> for this plug-in
-	 */
-	public static IStatus newErrorStatus(String message, Throwable exception) {
-		if (message == null) {
-			message= EMPTY_STRING; 
-		}		
-		return new Status(IStatus.ERROR, IExternalToolConstants.PLUGIN_ID, 0, message, exception);
-	}
-
-	/**
-	 * Returns a new <code>CoreException</code> for this plug-in
-	 */
-	public static CoreException newError(String message, Throwable exception) {
-		return new CoreException(new Status(IStatus.ERROR, IExternalToolConstants.PLUGIN_ID, 0, message, exception));
-	}
-
-	/**
-	 * Writes the message to the plug-in's log
-	 * 
-	 * @param message the text to write to the log
-	 */
-	public void log(String message, Throwable exception) {
-		IStatus status = newErrorStatus(message, exception);
-		getLog().log(status);
-	}
-	
-	public void log(Throwable exception) {
-		//this message is intentionally not internationalized, as an exception may
-		// be due to the resource bundle itself
-		getLog().log(newErrorStatus("Internal error logged from External Tools UI: ", exception)); //$NON-NLS-1$
-	}
-
-	/**
-	 * Returns the ImageDescriptor for the icon with the given path
-	 * 
-	 * @return the ImageDescriptor object
-	 */
-	public ImageDescriptor getImageDescriptor(String path) {
-		try {
-			URL installURL = getDescriptor().getInstallURL();
-			URL url = new URL(installURL, path);
-			return ImageDescriptor.createFromURL(url);
-		} catch (MalformedURLException e) {
-			return null;
-		}
-	}
-
-	/* (non-Javadoc)
-	 * Method declared in AbstractUIPlugin.
-	 */
-	protected void initializeDefaultPreferences(IPreferenceStore prefs) {
-		prefs.setDefault(IPreferenceConstants.PROMPT_FOR_MIGRATION, true);
-	}
-
-	/**
-	 * Returns the active workbench window or <code>null</code> if none
-	 */
-	public static IWorkbenchWindow getActiveWorkbenchWindow() {
-		return getDefault().getWorkbench().getActiveWorkbenchWindow();
-	}
-	
-	/**
-	 * Returns the active workbench page or <code>null</code> if none.
-	 */
-	public static IWorkbenchPage getActivePage() {
-		IWorkbenchWindow window= getActiveWorkbenchWindow();
-		if (window != null) {
-			return window.getActivePage();
-		}
-		return null;
-	}
-
-	/**
-	 * Returns the standard display to be used. The method first checks, if
-	 * the thread calling this method has an associated display. If so, this
-	 * display is returned. Otherwise the method returns the default display.
-	 */
-	public static Display getStandardDisplay() {
-		Display display = Display.getCurrent();
-		if (display == null) {
-			display = Display.getDefault();
-		}
-		return display;
-	}
-
-	/**
-	 * @see org.eclipse.ui.plugin.AbstractUIPlugin#createImageRegistry()
-	 */
-	protected ImageRegistry createImageRegistry() {
-		return ExternalToolsImages.initializeImageRegistry();
-	}
-
-	/**
-	 * @see org.eclipse.core.runtime.Plugin#startup()
-	 */
-	public void startup() throws CoreException {
-		super.startup();
-	}
-
-	/**
-	 * @see org.eclipse.core.runtime.Plugin#shutdown()
-	 */
-	public void shutdown() throws CoreException {
-		super.shutdown();
-		ExternalToolsImages.disposeImageDescriptorRegistry();
-	}
-}
diff --git a/org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/model/IExternalToolConstants.java b/org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/model/IExternalToolConstants.java
deleted file mode 100644
index 07bd381..0000000
--- a/org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/model/IExternalToolConstants.java
+++ /dev/null
@@ -1,193 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.externaltools.internal.model;
-
-/**
- * Defines the constants available for client use.
- * <p>
- * This interface is not intended to be extended or implemented by clients.
- * </p>
- */
-public interface IExternalToolConstants {
-	/**
-	 * Plugin identifier for external tools (value <code>org.eclipse.ui.externaltools</code>).
-	 */
-	public static final String PLUGIN_ID = "org.eclipse.ui.externaltools"; //$NON-NLS-1$;
-
-	// ------- Extensions Points -------
-	/**
-	 * Extension point to declare the launch configuration type that should be
-	 * created when duplicating an existing configuration as a project builder.
-	 */
-	public static final String EXTENSION_POINT_CONFIGURATION_DUPLICATION_MAPS = "configurationDuplicationMaps"; //$NON-NLS-1$
-	// ------- Refresh Variables -------
-	/**
-	 * Variable that expands to the workspace root object (value <code>workspace</code>).
-	 */
-	public static final String VAR_WORKSPACE = "workspace"; //$NON-NLS-1$
-	/**
-	 * Variable that expands to the project resource (value <code>project</code>).
-	 */
-	public static final String VAR_PROJECT = "project"; //$NON-NLS-1$
-	/**
-	 * Variable that expands to the container resource (value <code>container</code>).
-	 */
-	public static final String VAR_CONTAINER = "container"; //$NON-NLS-1$
-	/**
-	 * Variable that expands to a resource (value <code>resource</code>).
-	 */
-	public static final String VAR_RESOURCE = "resource"; //$NON-NLS-1$
-	/**
-	 * Variable that expands to the working set object (value <code>working_set</code>).
-	 */
-	public static final String VAR_WORKING_SET = "working_set"; //$NON-NLS-1$
-	// ------- Tool Types -------
-	/**
-	 * External tool type for programs such as executables, batch files, 
-	 * shell scripts, etc (value <code>programType</code>).
-	 */
-	public static final String TOOL_TYPE_PROGRAM = "programType"; //$NON-NLS-1$;
-
-	// ------- Build Types -------
-	/**
-	 * Build type indicating an incremental project build request for
-	 * the external tool running as a builder (value <code>incremental</code>).
-	 */
-	public static final String BUILD_TYPE_INCREMENTAL = "incremental"; //$NON-NLS-1$
-
-	/**
-	 * Build type indicating a full project build request for
-	 * the external tool running as a builder (value <code>full</code>).
-	 */
-	public static final String BUILD_TYPE_FULL = "full"; //$NON-NLS-1$
-
-	/**
-	 * Build type indicating an automatic project build request for
-	 * the external tool running as a builder (value <code>incremental</code>).
-	 */
-	public static final String BUILD_TYPE_AUTO = "auto"; //$NON-NLS-1$
-
-	/**
-	 * Build type indicating an no project build request for
-	 * the external tool running as a builder (value <code>none</code>).
-	 */
-	public static final String BUILD_TYPE_NONE = "none"; //$NON-NLS-1$
-
-	// ------- Images -------
-
-	/**
-	 * Main tab image.
-	 */
-	public static final String IMG_TAB_MAIN = PLUGIN_ID + ".IMG_TAB_MAIN"; //$NON-NLS-1$
-	
-	// ------- Launch configuration types --------
-	/**
-	 * Program launch configuration type identifier.
-	 */
-	public static final String ID_PROGRAM_LAUNCH_CONFIGURATION_TYPE = "org.eclipse.ui.externaltools.ProgramLaunchConfigurationType"; //$NON-NLS-1$
-	
-	/**
-	 * Program builder launch configuration type identifier. Program project
-	 * builders are of this type.
-	 */
-	public static final String ID_PROGRAM_BUILDER_LAUNCH_CONFIGURATION_TYPE = "org.eclipse.ui.externaltools.ProgramBuilderLaunchConfigurationType"; //$NON-NLS-1$	
-	
-	// ------- Launch configuration category --------
-	/**
-	 * Identifier for external tools launch configuration category. Launch
-	 * configuration types for external tools that appear in the external tools
-	 * launch configuration dialog should belong to this category.
-	 */
-	public static final String ID_EXTERNAL_TOOLS_LAUNCH_CATEGORY = "org.eclipse.ui.externaltools"; //$NON-NLS-1$
-	/**
-	 * Identifier for external tools launch configuration builders category.
-	 * Launch configuration types that can be added as project builders should
-	 * belong to this category.
-	 */
-	public static final String ID_EXTERNAL_TOOLS_BUILDER_LAUNCH_CATEGORY = "org.eclipse.ui.externaltools.builder"; //$NON-NLS-1$
-
-	// ------- Launch configuration groups --------
-	/**
-	 * Identifier for external tools launch configuration group. The external
-	 * tools launch configuration group corresponds to the external tools
-	 * category in run mode.
-	 */
-	public static final String ID_EXTERNAL_TOOLS_LAUNCH_GROUP = "org.eclipse.ui.externaltools.launchGroup"; //$NON-NLS-1$
-	/**
-	 * Identifier for external tools launch configuration group
-	 */
-	public static final String ID_EXTERNAL_TOOLS_BUILDER_LAUNCH_GROUP = "org.eclipse.ui.externaltools.launchGroup.builder"; //$NON-NLS-1$
-
-	// ------- Common External Tool Launch Configuration Attributes -------
-
-	/**
-	 * Boolean attribute indicating if external tool output should be captured.
-	 * Default value is <code>false</code>.
-	 */
-	public static final String ATTR_CAPTURE_OUTPUT = PLUGIN_ID + ".ATTR_CAPTURE_OUTPUT"; //$NON-NLS-1$
-	/**
-	 * String attribute identifying the location of an external. Default value
-	 * is <code>null</code>. Encoding is tool specific.
-	 */
-	public static final String ATTR_LOCATION = PLUGIN_ID + ".ATTR_LOCATION"; //$NON-NLS-1$
-
-	/**
-	 * Boolean attribute indicating if the user should be prompted for
-	 * arguments before running a tool. Default value is <code>false</code>.
-	 */
-	public static final String ATTR_PROMPT_FOR_ARGUMENTS = PLUGIN_ID + ".ATTR_PROMPT_FOR_ARGUMENTS"; //$NON-NLS-1$
-	
-	/**
-	 * String attribute identifying the scope of resources that should trigger an 
-	 * external tool to run. Default value is <code>null</code>
-	 * indicating that the builder will be triggered for all changes.
-	 */
-	public static final String ATTR_BUILD_SCOPE = PLUGIN_ID + ".ATTR_BUILD_SCOPE"; //$NON-NLS-1$
-		
-	
-	/**
-	 * String attribute containing an array of build kinds for which an
-	 * external tool builder should be run.
-	 */
-	public static final String ATTR_RUN_BUILD_KINDS = PLUGIN_ID + ".ATTR_RUN_BUILD_KINDS"; //$NON-NLS-1$
-	
-	/**
-	 * Boolean attribute indicating if an external tool should be run in the
-	 * background. Default value is <code>false</code>.
-	 */
-	public static final String ATTR_RUN_IN_BACKGROUND = PLUGIN_ID + ".ATTR_RUN_IN_BACKGROUND"; //$NON-NLS-1$
-	
-	/**
-	 * Boolean attribute indicating if the console should be shown on external
-	 * tool output. Default value is <code>false</code>.
-	 */
-	public static final String ATTR_SHOW_CONSOLE = PLUGIN_ID + ".ATTR_SHOW_CONSOLE"; //$NON-NLS-1$
-
-	/**
-	 * String attribute containing the arguments that should be passed to the
-	 * tool. Default value is <code>null</code>, and encoding is tool specific.
-	 */
-	public static final String ATTR_TOOL_ARGUMENTS = PLUGIN_ID + ".ATTR_TOOL_ARGUMENTS"; //$NON-NLS-1$
-
-	/**
-	 * String attribute identifying the working directory of an external tool.
-	 * Default value is <code>null</code>, which indicates a default working
-	 * directory, which is tool specific.
-	 */
-	public static final String ATTR_WORKING_DIRECTORY = PLUGIN_ID + ".ATTR_WORKING_DIRECTORY"; //$NON-NLS-1$
-	
-	/**
-	 * String attribute identifying whether an external tool builder configuration
-	 * is enabled. The default value is <code>true</code>, which indicates
-	 * that the configuration will be executed as appropriate by the builder.
-	 */
-	public static final String ATTR_BUILDER_ENABLED = PLUGIN_ID + ".ATTR_BUILDER_ENABLED"; //$NON-NLS-1$	
-}
diff --git a/org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/model/IExternalToolsHelpContextIds.java b/org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/model/IExternalToolsHelpContextIds.java
deleted file mode 100644
index bffc8b9..0000000
--- a/org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/model/IExternalToolsHelpContextIds.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.externaltools.internal.model;
-
-
-/**
- * Help context ids for the external tools.
- * <p>
- * This interface contains constants only; it is not intended to be implemented
- * or extended.
- * </p>
- */
-public interface IExternalToolsHelpContextIds {
-	public static final String PREFIX = "org.eclipse.ui.externaltools."; //$NON-NLS-1$
-
-	// Actions
-	public static final String REMOVE_ALL_ACTION = PREFIX + "remove_all_action_context"; //$NON-NLS-1$
-	public static final String TARGET_MOVE_UP_ACTION = PREFIX + "target_move_up_action_context"; //$NON-NLS-1$
-	public static final String TARGET_MOVE_DOWN_ACTION = PREFIX + "target_move_down_action_context"; //$NON-NLS-1$
-	public static final String SEARCH_FOR_BUILDFILES_ACTION = PREFIX + "search_for_buildfiles_action_context"; //$NON-NLS-1$
-
-	public static final String EDIT_LAUNCH_CONFIGURATION_ACTION = PREFIX + "edit_launch_configuration_action_context"; //$NON-NLS-1$
-	public static final String RUN_TARGET_ACTION = PREFIX + "run_target_action_context"; //$NON-NLS-1$
-	public static final String REMOVE_PROJECT_ACTION = PREFIX + "remove_project_action_context"; //$NON-NLS-1$
-	public static final String ADD_BUILDFILE_ACTION = PREFIX + "add_buildfile_action_context"; //$NON-NLS-1$
-	public static final String REFRESH_BUILDFILE_ACTION = PREFIX + "refresh_buildfile_action_context"; //$NON-NLS-1$
-
-	// Dialogs
-	public static final String FILE_SELECTION_DIALOG = PREFIX + "file_selection_dialog_context"; //$NON-NLS-1$
-	public static final String ADD_CUSTOM_DIALOG = PREFIX + "add_custom_dialog_context"; //$NON-NLS-1$
-	public static final String ADD_PROPERTY_DIALOG = PREFIX + "add_property_dialog_context"; //$NON-NLS-1$
-	public static final String SEARCH_FOR_BUILDFILES_DIALOG = PREFIX + "search_for_buildfiles_dialog_context"; //$NON-NLS-1$
-	public static final String STATUS_DIALOG = PREFIX + "status_dialog_context"; //$NON-NLS-1$
-	public static final String MESSAGE_WITH_TOGGLE_DIALOG = PREFIX + "message_with_toggle_dialog_context"; //$NON-NLS-1$
-	public static final String TARGET_ORDER_DIALOG = PREFIX + "target_order_dialog_context"; //$NON-NLS-1$
-	
-	// Preference Pages
-	public static final String EXTERNAL_TOOLS_PREFERENCE_PAGE = PREFIX + "preference_page_context";  //$NON-NLS-1$
-		
-	// Property Pages
-	public static final String EXTERNAL_TOOLS_BUILDER_PROPERTY_PAGE = PREFIX + "builder_property_page_context"; //$NON-NLS-1$
-
-	//Launch configuration dialog tabs
-	public static final String EXTERNAL_TOOLS_LAUNCH_CONFIGURATION_DIALOG_BUILDER_TAB = PREFIX + "builders_tab_context"; //$NON-NLS-1$
-	public static final String EXTERNAL_TOOLS_LAUNCH_CONFIGURATION_DIALOG_PROGRAM_MAIN_TAB = PREFIX + "program_main_tab_context"; //$NON-NLS-1$
-}
diff --git a/org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/model/IPreferenceConstants.java b/org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/model/IPreferenceConstants.java
deleted file mode 100644
index 9ff10aa..0000000
--- a/org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/model/IPreferenceConstants.java
+++ /dev/null
@@ -1,20 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.externaltools.internal.model;
-
-
-/**
- * Constants used to identify user preferences.
- */
-public interface IPreferenceConstants {
-	
-	public static final String PROMPT_FOR_MIGRATION = "externaltools.builders.promptForMigration"; //$NON-NLS-1$
-}
diff --git a/org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/model/ImageDescriptorRegistry.java b/org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/model/ImageDescriptorRegistry.java
deleted file mode 100644
index 8c585c7..0000000
--- a/org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/model/ImageDescriptorRegistry.java
+++ /dev/null
@@ -1,91 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.externaltools.internal.model;
-
- 
-import java.util.HashMap;
-import java.util.Iterator;
-
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.util.Assert;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.widgets.Display;
-
-/**
- * A registry that maps <code>ImageDescriptors</code> to <code>Image</code>.
- */
-public class ImageDescriptorRegistry {
-
-	private HashMap fRegistry= new HashMap(10);
-	private Display fDisplay;
-	
-	/**
-	 * Creates a new image descriptor registry for the current or default display,
-	 * respectively.
-	 */
-	public ImageDescriptorRegistry() {
-		this(ExternalToolsPlugin.getStandardDisplay());
-	}
-	
-	/**
-	 * Creates a new image descriptor registry for the given display. All images
-	 * managed by this registry will be disposed when the display gets disposed.
-	 * 
-	 * @param diaplay the display the images managed by this registry are allocated for 
-	 */
-	public ImageDescriptorRegistry(Display display) {
-		fDisplay= display;
-		Assert.isNotNull(fDisplay);
-		hookDisplay();
-	}
-	
-	/**
-	 * Returns the image associated with the given image descriptor.
-	 * 
-	 * @param descriptor the image descriptor for which the registry manages an image
-	 * @return the image associated with the image descriptor or <code>null</code>
-	 *  if the image descriptor can't create the requested image.
-	 */
-	public Image get(ImageDescriptor descriptor) {
-		if (descriptor == null)
-			descriptor= ImageDescriptor.getMissingImageDescriptor();
-			
-		Image result= (Image)fRegistry.get(descriptor);
-		if (result != null)
-			return result;
-	
-		Assert.isTrue(fDisplay == ExternalToolsPlugin.getStandardDisplay(), ExternalToolsModelMessages.getString("ImageDescriptorRegistry.Allocating_image_for_wrong_display_1")); //$NON-NLS-1$
-		result= descriptor.createImage();
-		if (result != null)
-			fRegistry.put(descriptor, result);
-		return result;
-	}
-
-	/**
-	 * Disposes all images managed by this registry.
-	 */	
-	public void dispose() {
-		for (Iterator iter= fRegistry.values().iterator(); iter.hasNext(); ) {
-			Image image= (Image)iter.next();
-			image.dispose();
-		}
-		fRegistry.clear();
-	}
-	
-	private void hookDisplay() {
-		fDisplay.disposeExec(new Runnable() {
-			public void run() {
-				dispose();
-			}	
-		});
-	}
-}
-
diff --git a/org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/model/StringMatcher.java b/org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/model/StringMatcher.java
deleted file mode 100644
index ace90cf..0000000
--- a/org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/model/StringMatcher.java
+++ /dev/null
@@ -1,394 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.externaltools.internal.model;
- 
-import java.util.*;
-
-/**
- * A string pattern matcher, suppporting * and ? wildcards.
- */
-public class StringMatcher {
-	protected String fPattern;
-	protected int fLength; // pattern length
-	protected boolean fIgnoreWildCards;
-	protected boolean fIgnoreCase;
-	protected boolean fHasLeadingStar;
-	protected boolean fHasTrailingStar;
-	protected String fSegments[]; //the given pattern is split into * separated segments
-
-	/* boundary value beyond which we don't need to search in the text */
-	protected int fBound= 0;
-	
-
-	protected static final char fSingleWildCard= '\u0000';
-	
-	public static class Position {
-		int start; //inclusive
-		int end; //exclusive
-		public Position(int start, int end) {
-			this.start= start;
-			this.end= end;
-		}
-		public int getStart() {
-			return start;
-		}
-		public int getEnd() {
-			return end;
-		}
-	}
-	/**
-	 * StringMatcher constructor takes in a String object that is a simple 
-	 * pattern which may contain '*' for 0 and many characters and
-	 * '?' for exactly one character.  
-	 *
-	 * Literal '*' and '?' characters must be escaped in the pattern 
-	 * e.g., "\*" means literal "*", etc.
-	 *
-	 * Escaping any other character (including the escape character itself), 
-	 * just results in that character in the pattern.
-	 * e.g., "\a" means "a" and "\\" means "\"
-	 *
-	 * If invoking the StringMatcher with string literals in Java, don't forget
-	 * escape characters are represented by "\\".
-	 *
-	 * @param pattern the pattern to match text against
-	 * @param ignoreCase if true, case is ignored
-	 * @param ignoreWildCards if true, wild cards and their escape sequences are ignored
-	 * 		  (everything is taken literally).
-	 */
-	public StringMatcher(String pattern, boolean ignoreCase, boolean ignoreWildCards) {
-		if (pattern == null)
-			throw new IllegalArgumentException();
-		fIgnoreCase= ignoreCase;
-		fIgnoreWildCards= ignoreWildCards;
-		fPattern= pattern;
-		fLength= pattern.length();
-		
-		if (fIgnoreWildCards) {
-			parseNoWildCards();
-		} else {
-			parseWildCards();
-		}
-	}
-	/**
-	 * Find the first occurrence of the pattern between <code>start</code)(inclusive) 
-	 * and <code>end</code>(exclusive).  
-	 * @param <code>text</code>, the String object to search in 
-	 * @param <code>start</code>, the starting index of the search range, inclusive
-	 * @param <code>end</code>, the ending index of the search range, exclusive
-	 * @return an <code>StringMatcher.Position</code> object that keeps the starting 
-	 * (inclusive) and ending positions (exclusive) of the first occurrence of the 
-	 * pattern in the specified range of the text; return null if not found or subtext
-	 * is empty (start==end). A pair of zeros is returned if pattern is empty string
-	 * Note that for pattern like "*abc*" with leading and trailing stars, position of "abc"
-	 * is returned. For a pattern like"*??*" in text "abcdf", (1,3) is returned
-	 */
-	public StringMatcher.Position find(String text, int start, int end) {
-		if (text == null)
-			throw new IllegalArgumentException();
-			
-		int tlen= text.length();
-		if (start < 0)
-			start= 0;
-		if (end > tlen)
-			end= tlen;
-		if (end < 0 ||start >= end )
-			return null;
-		if (fLength == 0)
-			return new Position(start, start);
-		if (fIgnoreWildCards) {
-			int x= posIn(text, start, end);
-			if (x < 0)
-				return null;
-			return new Position(x, x+fLength);
-		}
-
-		int segCount= fSegments.length;
-		if (segCount == 0)//pattern contains only '*'(s)
-			return new Position (start, end);
-					
-		int curPos= start;
-		int matchStart= -1;
-		int i;
-		for (i= 0; i < segCount && curPos < end; ++i) {
-			String current= fSegments[i];
-			int nextMatch= regExpPosIn(text, curPos, end, current);
-			if (nextMatch < 0 )
-				return null;
-			if(i == 0)
-				matchStart= nextMatch;
-			curPos= nextMatch + current.length();
-		}
-		if (i < segCount)
-			return null;
-		return new Position(matchStart, curPos);
-	}
-	/**
-	 * match the given <code>text</code> with the pattern 
-	 * @return true if matched eitherwise false
-	 * @param <code>text</code>, a String object 
-	 */
-	public boolean match(String text) {
-		return match(text, 0, text.length());
-	}
-	/**
-	 * Given the starting (inclusive) and the ending (exclusive) positions in the   
-	 * <code>text</code>, determine if the given substring matches with aPattern  
-	 * @return true if the specified portion of the text matches the pattern
-	 * @param String <code>text</code>, a String object that contains the substring to match 
-	 * @param int <code>start<code> marks the starting position (inclusive) of the substring
-	 * @param int <code>end<code> marks the ending index (exclusive) of the substring 
-	 */
-	public boolean match(String text, int start, int end) {
-		if (null == text)
-			throw new IllegalArgumentException();
-
-		if (start > end)
-			return false;
-
-		if (fIgnoreWildCards)
-			return (end - start == fLength) && fPattern.regionMatches(fIgnoreCase, 0, text, start, fLength);
-		int segCount= fSegments.length;
-		if (segCount == 0 && (fHasLeadingStar || fHasTrailingStar))  // pattern contains only '*'(s)
-			return true;
-		if (start == end)
-			return fLength == 0;
-		if (fLength == 0)
-			return start == end;
-
-		int tlen= text.length();
-		if (start < 0)
-			start= 0;
-		if (end > tlen)
-			end= tlen;
-
-		int tCurPos= start;
-		int bound= end - fBound;
-		if ( bound < 0)
-			return false;
-		int i=0;
-		String current= fSegments[i];
-		int segLength= current.length();
-
-		/* process first segment */
-		if (!fHasLeadingStar){
-			if(!regExpRegionMatches(text, start, current, 0, segLength)) {
-				return false;
-			} else {
-				++i;
-				tCurPos= tCurPos + segLength;
-			}
-		}
-		if ((fSegments.length == 1) && (!fHasLeadingStar) && (!fHasTrailingStar)) {
-			// only one segment to match, no wildcards specified
-			return tCurPos == end;
-		}
-		/* process middle segments */
-		while (i < segCount) {
-			current= fSegments[i];
-			int currentMatch;
-			int k= current.indexOf(fSingleWildCard);
-			if (k < 0) {
-				currentMatch= textPosIn(text, tCurPos, end, current);
-				if (currentMatch < 0)
-					return false;
-			} else {
-				currentMatch= regExpPosIn(text, tCurPos, end, current);
-				if (currentMatch < 0)
-					return false;
-			}
-			tCurPos= currentMatch + current.length();
-			i++;
-		}
-
-		/* process final segment */
-		if (!fHasTrailingStar && tCurPos != end) {
-			int clen= current.length();
-			return regExpRegionMatches(text, end - clen, current, 0, clen);
-		}
-		return i == segCount ;
-	}
-
-	/**
-	 * This method parses the given pattern into segments seperated by wildcard '*' characters.
-	 * Since wildcards are not being used in this case, the pattern consists of a single segment.
-	 */
-	private void parseNoWildCards() {
-		fSegments= new String[1];
-		fSegments[0]= fPattern;
-		fBound= fLength;
-	}
-	/**
-	 * Parses the given pattern into segments seperated by wildcard '*' characters.
-	 * @param p, a String object that is a simple regular expression with '*' and/or '?'
-	 */
-	private void parseWildCards() {
-		if(fPattern.startsWith("*"))//$NON-NLS-1$
-			fHasLeadingStar= true;
-		if(fPattern.endsWith("*")) {//$NON-NLS-1$
-			/* make sure it's not an escaped wildcard */
-			if (fLength > 1 && fPattern.charAt(fLength - 2) != '\\') {
-				fHasTrailingStar= true;
-			}
-		}
-
-		Vector temp= new Vector();
-
-		int pos= 0;
-		StringBuffer buf= new StringBuffer();
-		while (pos < fLength) {
-			char c= fPattern.charAt(pos++);
-			switch (c) {
-				case '\\':
-					if (pos >= fLength) {
-						buf.append(c);
-					} else {
-						char next= fPattern.charAt(pos++);
-						/* if it's an escape sequence */
-						if (next == '*' || next == '?' || next == '\\') {
-							buf.append(next);
-						} else {
-							/* not an escape sequence, just insert literally */
-							buf.append(c);
-							buf.append(next);
-						}
-					}
-				break;
-				case '*':
-					if (buf.length() > 0) {
-						/* new segment */
-						temp.addElement(buf.toString());
-						fBound += buf.length();
-						buf.setLength(0);
-					}
-				break;
-				case '?':
-					/* append special character representing single match wildcard */
-					buf.append(fSingleWildCard);
-				break;
-				default:
-					buf.append(c);
-			}
-		}
-
-		/* add last buffer to segment list */
-		if (buf.length() > 0) {
-			temp.addElement(buf.toString());
-			fBound += buf.length();
-		}
-			
-		fSegments= new String[temp.size()];
-		temp.copyInto(fSegments);
-	}
-	/** 
-	 * @param <code>text</code>, a string which contains no wildcard
-	 * @param <code>start</code>, the starting index in the text for search, inclusive
-	 * @param <code>end</code>, the stopping point of search, exclusive
-	 * @return the starting index in the text of the pattern , or -1 if not found 
-	 */
-	protected int posIn(String text, int start, int end) {//no wild card in pattern
-		int max= end - fLength;
-		
-		if (!fIgnoreCase) {
-			int i= text.indexOf(fPattern, start);
-			if (i == -1 || i > max)
-				return -1;
-			return i;
-		}
-		
-		for (int i= start; i <= max; ++i) {
-			if (text.regionMatches(true, i, fPattern, 0, fLength))
-				return i;
-		}
-		
-		return -1;
-	}
-	/** 
-	 * @param <code>text</code>, a simple regular expression that may only contain '?'(s)
-	 * @param <code>start</code>, the starting index in the text for search, inclusive
-	 * @param <code>end</code>, the stopping point of search, exclusive
-	 * @param <code>p</code>, a simple regular expression that may contains '?'
-	 * @param <code>caseIgnored</code>, wether the pattern is not casesensitive
-	 * @return the starting index in the text of the pattern , or -1 if not found 
-	 */
-	protected int regExpPosIn(String text, int start, int end, String p) {
-		int plen= p.length();
-		
-		int max= end - plen;
-		for (int i= start; i <= max; ++i) {
-			if (regExpRegionMatches(text, i, p, 0, plen))
-				return i;
-		}
-		return -1;
-	}
-	/**
-	 * 
-	 * @return boolean
-	 * @param <code>text</code>, a String to match
-	 * @param <code>start</code>, int that indicates the starting index of match, inclusive
-	 * @param <code>end</code> int that indicates the ending index of match, exclusive
-	 * @param <code>p</code>, String,  String, a simple regular expression that may contain '?'
-	 * @param <code>ignoreCase</code>, boolean indicating wether code>p</code> is case sensitive
-	 */
-	protected boolean regExpRegionMatches(String text, int tStart, String p, int pStart, int plen) {
-		while (plen-- > 0) {
-			char tchar= text.charAt(tStart++);
-			char pchar= p.charAt(pStart++);
-
-			/* process wild cards */
-			if (!fIgnoreWildCards) {
-				/* skip single wild cards */
-				if (pchar == fSingleWildCard) {
-					continue;
-				}
-			}
-			if (pchar == tchar)
-				continue;
-			if (fIgnoreCase) {
-				if (Character.toUpperCase(tchar) == Character.toUpperCase(pchar))
-					continue;
-				// comparing after converting to upper case doesn't handle all cases;
-				// also compare after converting to lower case
-				if (Character.toLowerCase(tchar) == Character.toLowerCase(pchar))
-					continue;
-			}
-			return false;
-		}
-		return true;
-	}
-	/** 
-	 * @param <code>text</code>, the string to match
-	 * @param <code>start</code>, the starting index in the text for search, inclusive
-	 * @param <code>end</code>, the stopping point of search, exclusive
-	 * @param code>p</code>, a string that has no wildcard
-	 * @param <code>ignoreCase</code>, boolean indicating wether code>p</code> is case sensitive
-	 * @return the starting index in the text of the pattern , or -1 if not found 
-	 */
-	protected int textPosIn(String text, int start, int end, String p) { 
-		
-		int plen= p.length();
-		int max= end - plen;
-		
-		if (!fIgnoreCase) {
-			int i= text.indexOf(p, start);
-			if (i == -1 || i > max)
-				return -1;
-			return i;
-		}
-		
-		for (int i= start; i <= max; ++i) {
-			if (text.regionMatches(true, i, p, 0, plen))
-				return i;
-		}
-		
-		return -1;
-	}
-}
diff --git a/org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/registry/ExternalToolMigration.java b/org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/registry/ExternalToolMigration.java
deleted file mode 100644
index ed54d29..0000000
--- a/org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/registry/ExternalToolMigration.java
+++ /dev/null
@@ -1,284 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.externaltools.internal.registry;
-
-
-import java.util.ArrayList;
-import java.util.Map;
-import java.util.StringTokenizer;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.debug.core.DebugPlugin;
-import org.eclipse.debug.core.ILaunchConfigurationType;
-import org.eclipse.debug.core.ILaunchConfigurationWorkingCopy;
-import org.eclipse.debug.core.ILaunchManager;
-import org.eclipse.debug.core.variables.ILaunchVariableManager;
-import org.eclipse.debug.core.variables.LaunchVariableUtil;
-import org.eclipse.ui.externaltools.internal.model.ExternalToolsPlugin;
-import org.eclipse.ui.externaltools.internal.model.IExternalToolConstants;
-
-/**
- * Responsible reading an old external tool format and creating
- * and migrating it to create a new external tool.
- */
-public final class ExternalToolMigration {
-	/*
-	 * Ant tags
-	 */
-	/**
-	 * External tool type for Ant build files (value <code>antBuildType</code>).
-	 */
-	public static final String TOOL_TYPE_ANT_BUILD = "antBuildType"; //$NON-NLS-1$;
-	/**
-	 * Ant builder launch configuration type identifier. Ant project builders
-	 * are of this type.
-	 */
-	public static final String ID_ANT_BUILDER_LAUNCH_CONFIGURATION_TYPE = "org.eclipse.ant.AntBuilderLaunchConfigurationType"; //$NON-NLS-1$
-		
-	public static final String RUN_TARGETS_ATTRIBUTE = TOOL_TYPE_ANT_BUILD + ".runTargets"; //$NON-NLS-1$;
-
-	/**
-	* String attribute indicating the Ant targets to execute. Default value is
-	 * <code>null</code> which indicates that the default target is to be
-	 * executed. Format is a comma separated listing of targets.
-	 * NOTE: This value is copied here from org.eclipse.ant.ui.internal.IAntLaunchConfigurationConstants.
-	 * 		Ant no longer resides in External Tools and this plug-in. This value is kept here only
-	 * 		for migration.
-	 */
-	public static final String ATTR_ANT_TARGETS = IExternalToolConstants.PLUGIN_ID + ".ATTR_ANT_TARGETS"; //$NON-NLS-1$
-	
-	/*
-	 * 2.0 External Tool Tags
-	 */
-	private static final String TAG_TOOL_TYPE = "!{tool_type}"; //$NON-NLS-1$
-	private static final String TAG_TOOL_NAME = "!{tool_name}"; //$NON-NLS-1$
-	private static final String TAG_TOOL_LOCATION = "!{tool_loc}"; //$NON-NLS-1$
-	private static final String TAG_TOOL_ARGUMENTS = "!{tool_args}"; //$NON-NLS-1$
-	private static final String TAG_TOOL_DIRECTORY = "!{tool_dir}"; //$NON-NLS-1$
-	private static final String TAG_TOOL_REFRESH = "!{tool_refresh}"; //$NON-NLS-1$
-	private static final String TAG_TOOL_SHOW_LOG = "!{tool_show_log}"; //$NON-NLS-1$
-	private static final String TAG_TOOL_BUILD_TYPES = "!{tool_build_types}"; //$NON-NLS-1$
-	private static final String TAG_TOOL_BLOCK = "!{tool_block}"; //$NON-NLS-1$
-
-	// Known kind of tools
-	private static final String TOOL_TYPE_ANT = "org.eclipse.ui.externaltools.type.ant"; //$NON-NLS-1$
-
-	/*
-	 * 2.1 External Tool Keys
-	 */
-	private static final String TAG_TYPE = "type"; //$NON-NLS-1$
-	private static final String TAG_NAME = "name"; //$NON-NLS-1$
-	private static final String TAG_LOCATION = "location"; //$NON-NLS-1$
-	private static final String TAG_WORK_DIR = "workDirectory"; //$NON-NLS-1$
-	private static final String TAG_CAPTURE_OUTPUT = "captureOutput"; //$NON-NLS-1$
-	private static final String TAG_SHOW_CONSOLE = "showConsole"; //$NON-NLS-1$
-	private static final String TAG_RUN_BKGRND = "runInBackground"; //$NON-NLS-1$
-	private static final String TAG_PROMPT_ARGS = "promptForArguments"; //$NON-NLS-1$
-	private static final String TAG_ARGS = "arguments"; //$NON-NLS-1$
-	private static final String TAG_REFRESH_SCOPE = "refreshScope"; //$NON-NLS-1$
-	private static final String TAG_REFRESH_RECURSIVE = "refreshRecursive"; //$NON-NLS-1$
-	private static final String TAG_RUN_BUILD_KINDS = "runForBuildKinds"; //$NON-NLS-1$
-	private static final String TAG_EXTRA_ATTR = "extraAttribute"; //$NON-NLS-1$
-	private static final String TAG_VERSION = "version"; //$NON-NLS-1$
-
-	private static final String EXTRA_ATTR_SEPARATOR = "="; //$NON-NLS-1$
-
-	private static final String VERSION_21 = "2.1"; //$NON-NLS-1$;
-
-	private static final String TRUE = "true"; //$NON-NLS-1$
-	private static final String FALSE = "false"; //$NON-NLS-1$
-
-	/**
-	 * Allows no instances.
-	 */
-	private ExternalToolMigration() {
-		super();
-	}
-
-	/**
-	 * Returns a  launch configuration working copy from the argument map or
-	 * <code>null</code> if the given map cannot be interpreted as a 2.0 or 2.1
-	 * branch external tool. The returned working copy will be unsaved and its
-	 * location will be set to the metadata area.
-	 */
-	public static ILaunchConfigurationWorkingCopy configFromArgumentMap(Map args) {
-		String version = (String) args.get(TAG_VERSION);
-		if (VERSION_21.equals(version)) {
-			return configFrom21ArgumentMap(args);
-		}
-		return configFrom20ArgumentMap(args);
-	}
-
-	public static ILaunchConfigurationWorkingCopy configFrom21ArgumentMap(Map commandArgs) {
-		String name = (String) commandArgs.get(TAG_NAME);
-		String type = (String) commandArgs.get(TAG_TYPE);
-		
-		ILaunchConfigurationWorkingCopy config = newConfig(type, name);
-		if (config == null) {
-			return null;
-		}
-		
-		config.setAttribute(IExternalToolConstants.ATTR_LOCATION, (String) commandArgs.get(TAG_LOCATION));
-		config.setAttribute(IExternalToolConstants.ATTR_WORKING_DIRECTORY, (String) commandArgs.get(TAG_WORK_DIR));
-		config.setAttribute(IExternalToolConstants.ATTR_CAPTURE_OUTPUT, TRUE.equals(commandArgs.get(TAG_CAPTURE_OUTPUT)));
-		config.setAttribute(IExternalToolConstants.ATTR_SHOW_CONSOLE, TRUE.equals(commandArgs.get(TAG_SHOW_CONSOLE)));
-		config.setAttribute(IExternalToolConstants.ATTR_RUN_IN_BACKGROUND, TRUE.equals(commandArgs.get(TAG_RUN_BKGRND)));
-		config.setAttribute(IExternalToolConstants.ATTR_PROMPT_FOR_ARGUMENTS, TRUE.equals(commandArgs.get(TAG_PROMPT_ARGS)));
-		config.setAttribute(LaunchVariableUtil.ATTR_REFRESH_SCOPE, (String) commandArgs.get(TAG_REFRESH_SCOPE));
-		config.setAttribute(LaunchVariableUtil.ATTR_REFRESH_RECURSIVE, TRUE.equals(commandArgs.get(TAG_REFRESH_RECURSIVE)));
-
-		config.setAttribute(IExternalToolConstants.ATTR_RUN_BUILD_KINDS, (String) commandArgs.get(TAG_RUN_BUILD_KINDS));
-		
-		String args = (String) commandArgs.get(TAG_ARGS);
-		if (args != null) {
-			config.setAttribute(IExternalToolConstants.ATTR_TOOL_ARGUMENTS, args);
-		}
-
-		String extraAttributes = (String) commandArgs.get(TAG_EXTRA_ATTR);
-		if (extraAttributes != null) {
-			StringTokenizer tokenizer = new StringTokenizer(extraAttributes, EXTRA_ATTR_SEPARATOR);
-			while (tokenizer.hasMoreTokens()) {
-				String key = tokenizer.nextToken();
-				if (!tokenizer.hasMoreTokens())
-					break;
-				String value = tokenizer.nextToken();
-				if (key.equals(RUN_TARGETS_ATTRIBUTE)) {
-					// 2.1 implementation only defined 1 "extra attribute"
-					config.setAttribute(ATTR_ANT_TARGETS, value);
-				}
-			}
-		}
-		return config;
-	}
-
-	/**
-	 * Creates an external tool from the map.
-	 */
-	public static ILaunchConfigurationWorkingCopy configFrom20ArgumentMap(Map args) {
-		// Update the type...
-		String type = (String) args.get(TAG_TOOL_TYPE);
-		if (TOOL_TYPE_ANT.equals(type)) {
-			type = TOOL_TYPE_ANT_BUILD;
-		} else {
-			type = IExternalToolConstants.TOOL_TYPE_PROGRAM;
-		}
-
-		String name = (String) args.get(TAG_TOOL_NAME);
-		
-		ILaunchConfigurationWorkingCopy config = newConfig(type, name);
-		if (config == null) {
-			return null;
-		}
-
-		// Update the location...
-		String location = (String) args.get(TAG_TOOL_LOCATION);
-		if (location != null) {
-			LaunchVariableUtil.VariableDefinition varDef = LaunchVariableUtil.extractVariableDefinition(location, 0);
-			if (ILaunchVariableManager.VAR_WORKSPACE_LOC.equals(varDef.name)) {
-				location = LaunchVariableUtil.newVariableExpression(ILaunchVariableManager.VAR_RESOURCE_LOC, varDef.argument);
-			}
-			config.setAttribute(IExternalToolConstants.ATTR_LOCATION, location);
-		}
-
-		// Update the refresh scope...
-		String refresh = (String) args.get(TAG_TOOL_REFRESH);
-		if (refresh != null) {
-			LaunchVariableUtil.VariableDefinition varDef = LaunchVariableUtil.extractVariableDefinition(refresh, 0);
-			if ("none".equals(varDef.name)) { //$NON-NLS-1$
-				refresh = null;
-			}
-			config.setAttribute(LaunchVariableUtil.ATTR_REFRESH_SCOPE, refresh);
-		}
-
-		// Update the arguments
-		String arguments = (String) args.get(TAG_TOOL_ARGUMENTS);
-		String targetNames = null;
-		if (arguments != null) {
-			int start = 0;
-			ArrayList targets = new ArrayList();
-			StringBuffer buffer = new StringBuffer();
-			LaunchVariableUtil.VariableDefinition varDef = LaunchVariableUtil.extractVariableDefinition(arguments, start);
-			while (varDef.end != -1) {
-				if ("ant_target".equals(varDef.name) && varDef.argument != null) { //$NON-NLS-1$
-					targets.add(varDef.argument);
-					buffer.append(arguments.substring(start, varDef.start));
-				} else {
-					buffer.append(arguments.substring(start, varDef.end));
-				}
-				start = varDef.end;
-				varDef = LaunchVariableUtil.extractVariableDefinition(arguments, start);
-			}
-			buffer.append(arguments.substring(start, arguments.length()));
-			arguments = buffer.toString();
-
-			buffer.setLength(0);
-			for (int i = 0; i < targets.size(); i++) {
-				String target = (String) targets.get(i);
-				if (target != null && target.length() > 0) {
-					buffer.append(target);
-					buffer.append(","); //$NON-NLS-1$
-				}
-			}
-			targetNames = buffer.toString();
-		}
-		if (targetNames != null && targetNames.length() > 0) {
-			config.setAttribute(ATTR_ANT_TARGETS, targetNames);
-		}
-
-		// Collect the rest of the information
-		config.setAttribute(IExternalToolConstants.ATTR_SHOW_CONSOLE, TRUE.equals(args.get(TAG_TOOL_SHOW_LOG)));
-		config.setAttribute(IExternalToolConstants.ATTR_CAPTURE_OUTPUT, TRUE.equals(args.get(TAG_TOOL_SHOW_LOG)));
-		config.setAttribute(IExternalToolConstants.ATTR_RUN_IN_BACKGROUND, FALSE.equals(args.get(TAG_TOOL_BLOCK)));
-		config.setAttribute(IExternalToolConstants.ATTR_RUN_BUILD_KINDS, (String) args.get(TAG_TOOL_BUILD_TYPES));
-		config.setAttribute(IExternalToolConstants.ATTR_TOOL_ARGUMENTS, arguments);
-		config.setAttribute(IExternalToolConstants.ATTR_WORKING_DIRECTORY, (String) args.get(TAG_TOOL_DIRECTORY));
-		return config;
-	}
-
-	/**
-	 * Returns a new working copy with the given external tool name and external
-	 * tool type or <code>null</code> if no config could be created.
-	 */
-	private static ILaunchConfigurationWorkingCopy newConfig(String type, String name) {
-		if (type == null || name == null) {
-			return null;
-		}
-		ILaunchManager manager = DebugPlugin.getDefault().getLaunchManager();
-		ILaunchConfigurationType configType;
-		if (TOOL_TYPE_ANT_BUILD.equals(type)) {
-			configType = manager.getLaunchConfigurationType(ID_ANT_BUILDER_LAUNCH_CONFIGURATION_TYPE);
-		} else if (IExternalToolConstants.TOOL_TYPE_PROGRAM.equals(type)) {
-			configType = manager.getLaunchConfigurationType(IExternalToolConstants.ID_PROGRAM_BUILDER_LAUNCH_CONFIGURATION_TYPE);
-		} else {
-			return null;
-		}
-		try {
-			if (configType != null) {
-				return configType.newInstance(null, name);
-			}
-		} catch (CoreException e) {
-			ExternalToolsPlugin.getDefault().log(e);
-		}
-		return null;
-	}
-	
-	/**
-	 * Returns the tool name extracted from the given command argument map.
-	 * Extraction is attempted using 2.0 and 2.1 external tool formats.
-	 */
-	public static String getNameFromCommandArgs(Map commandArgs) {
-		String name= (String) commandArgs.get(TAG_NAME);
-		if (name == null) {
-			name= (String) commandArgs.get(TAG_TOOL_NAME);
-		}
-		return name;
-	}	
-}
diff --git a/org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/ui/BuilderPropertyPage.java b/org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/ui/BuilderPropertyPage.java
deleted file mode 100644
index afc79e2..0000000
--- a/org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/ui/BuilderPropertyPage.java
+++ /dev/null
@@ -1,1214 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.externaltools.internal.ui;
-
-
-import java.text.MessageFormat;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-
-import org.eclipse.core.resources.ICommand;
-import org.eclipse.core.resources.IFolder;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IProjectDescription;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.IWorkspace;
-import org.eclipse.core.resources.IWorkspaceDescription;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.core.runtime.IExtension;
-import org.eclipse.core.runtime.IExtensionPoint;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.debug.core.DebugPlugin;
-import org.eclipse.debug.core.ILaunchConfiguration;
-import org.eclipse.debug.core.ILaunchConfigurationListener;
-import org.eclipse.debug.core.ILaunchConfigurationType;
-import org.eclipse.debug.core.ILaunchConfigurationWorkingCopy;
-import org.eclipse.debug.core.ILaunchManager;
-import org.eclipse.debug.ui.DebugUITools;
-import org.eclipse.debug.ui.IDebugModelPresentation;
-import org.eclipse.jface.dialogs.ErrorDialog;
-import org.eclipse.jface.dialogs.IDialogConstants;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.jface.viewers.ILabelProvider;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.jface.window.Window;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.events.SelectionListener;
-import org.eclipse.swt.graphics.Font;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Listener;
-import org.eclipse.swt.widgets.Table;
-import org.eclipse.swt.widgets.TableItem;
-import org.eclipse.ui.dialogs.ElementListSelectionDialog;
-import org.eclipse.ui.dialogs.PropertyPage;
-import org.eclipse.ui.externaltools.internal.launchConfigurations.ExternalToolsUtil;
-import org.eclipse.ui.externaltools.internal.model.ExternalToolBuilder;
-import org.eclipse.ui.externaltools.internal.model.ExternalToolsPlugin;
-import org.eclipse.ui.externaltools.internal.model.IExternalToolConstants;
-import org.eclipse.ui.externaltools.internal.model.IExternalToolsHelpContextIds;
-import org.eclipse.ui.externaltools.internal.model.IPreferenceConstants;
-import org.eclipse.ui.externaltools.internal.registry.ExternalToolMigration;
-import org.eclipse.ui.help.WorkbenchHelp;
-
-/**
- * Property page to add external tools in between builders.
- */
-public final class BuilderPropertyPage extends PropertyPage {
-	private static final int BUILDER_TABLE_WIDTH = 250;
-
-	private static final String IMG_BUILDER = "icons/full/obj16/builder.gif"; //$NON-NLS-1$;
-	private static final String IMG_INVALID_BUILD_TOOL = "icons/full/obj16/invalid_build_tool.gif"; //$NON-NLS-1$
-
-	private static final String LAUNCH_CONFIG_HANDLE = "LaunchConfigHandle"; //$NON-NLS-1$
-	
-	// Extension point constants.
-	private static final String TAG_CONFIGURATION_MAP= "configurationMap"; //$NON-NLS-1$
-	private static final String TAG_SOURCE_TYPE= "sourceType"; //$NON-NLS-1$
-	private static final String TAG_BUILDER_TYPE= "builderType"; //$NON-NLS-1$
-
-	private Table builderTable;
-	private Button upButton, downButton, newButton, copyButton, editButton, removeButton, enableButton, disableButton;
-	private List imagesToDispose = new ArrayList();
-	private Image builderImage, invalidBuildToolImage;
-	
-	private boolean userHasMadeChanges= false;
-	
-	private List configsToBeDeleted= null;
-	
-	private ILabelProvider labelProvider;
-	
-	private class BuilderPageLabelProvider extends LabelProvider {
-		
-		private IDebugModelPresentation debugModelPresentation;
-		
-		public BuilderPageLabelProvider() {
-			debugModelPresentation= DebugUITools.newDebugModelPresentation();			
-		}
-
-		public Image getImage(Object element) {
-			return debugModelPresentation.getImage(element);
-		}
-
-		/* (non-Javadoc)
-		 * @see org.eclipse.jface.viewers.ILabelProvider#getText(java.lang.Object)
-		 */
-		public String getText(Object element) {
-			StringBuffer buffer= new StringBuffer(debugModelPresentation.getText(element));
-			if (element instanceof ILaunchConfiguration) {
-				try {
-					if (!ExternalToolsUtil.isBuilderEnabled((ILaunchConfiguration) element)) {
-						buffer.append(ExternalToolsUIMessages.getString("BuilderPropertyPage.38")); //$NON-NLS-1$
-					}
-				} catch (CoreException e) {
-				}
-			}
-			return buffer.toString();
-		}
-		
-	}
-	
-	/**
-	 * Error configs are objects representing entries pointing to
-	 * invalid launch configurations
-	 */
-	private class ErrorConfig {
-	}
-	
-	/**
-	 * Collection of configurations created while the page is open.
-	 * Stored here so they can be deleted if the page is cancelled.
-	 */
-	private List newConfigList= new ArrayList();
-	
-	private SelectionListener buttonListener= new SelectionAdapter() {
-		public void widgetSelected(SelectionEvent e) {
-			handleButtonPressed((Button) e.widget);
-		}
-	};
-	
-	/**
-	 * Launch configuration listener which is responsible for updating items in
-	 * the tree when the user renames configurations in the dialog.
-	 * 
-	 * This is necessary because when we tell the configuration dialog to open
-	 * on a launch config and the user renames that config, the old config (the
-	 * one in the tree) is made obsolete and a new config is created. This
-	 * listener hears when new configurations are created this way and replaces
-	 * the old configuration with the new.
-	 */
-	private ILaunchConfigurationListener configurationListener= new ILaunchConfigurationListener() {
-		/**
-		 * A launch configuration has been added. If this config has been
-		 * movedFrom a configuration in the tree, replace the old config with
-		 * the new.
-		 */
-		public void launchConfigurationAdded(final ILaunchConfiguration configuration) {
-			ILaunchManager manager= DebugPlugin.getDefault().getLaunchManager();
-			final ILaunchConfiguration oldConfig= manager.getMovedFrom(configuration);
-			if (oldConfig == null) {
-				return;
-			}
-			
-			Display.getDefault().asyncExec(new Runnable() {	
-				public void run() {
-					TableItem[] items= builderTable.getItems();
-					for (int i = 0; i < items.length; i++) {
-						TableItem item = items[i];
-						Object data= item.getData();
-						if (data == oldConfig) {
-							// Found the movedFrom config in the tree. Replace it with the new config 
-							item.setData(configuration);
-							updateConfigItem(item, configuration);
-							break;
-						}
-					}
-					//Also replace the movedFrom config in the list of newly created configs
-					if (newConfigList.remove(oldConfig)) {
-						newConfigList.add(configuration);
-					}
-				}
-			});
-		}
-		public void launchConfigurationChanged(ILaunchConfiguration configuration) {
-		}
-		public void launchConfigurationRemoved(ILaunchConfiguration configuration) {
-		}
-	};
-
-	/**
-	 * Creates an initialized property page
-	 */
-	public BuilderPropertyPage() {
-		super();
-		noDefaultAndApplyButton();
-	}
-
-	/**
-	 * Add the project's build to the table viewer.
-	 */
-	private void addBuildersToTable() {
-		IProject project = getInputProject();
-		if (project == null) {
-			return;
-		}
-		//add build spec entries to the table
-		try {
-			ICommand[] commands = project.getDescription().getBuildSpec();
-			for (int i = 0; i < commands.length; i++) {
-				ILaunchConfiguration config = ExternalToolsUtil.configFromBuildCommandArgs(commands[i].getArguments());
-				if (config != null) {
-					if (!config.isWorkingCopy() && !config.exists()) {
-						IStatus status = new Status(IStatus.ERROR, IExternalToolConstants.PLUGIN_ID, 0, MessageFormat.format(ExternalToolsUIMessages.getString("BuilderPropertyPage.Exists"), new String[]{config.getLocation().toOSString()}), null); 	 //$NON-NLS-1$
-						ErrorDialog.openError(getShell(), ExternalToolsUIMessages.getString("BuilderPropertyPage.errorTitle"), //$NON-NLS-1$
-										MessageFormat.format(ExternalToolsUIMessages.getString("BuilderPropertyPage.External_Tool_Builder_{0}_Not_Added_2"), new String[]{config.getName()}),  //$NON-NLS-1$
-										status);
-						userHasMadeChanges= true;
-					} else {
-						addConfig(config, false);
-					}
-				} else {
-					String builderID = commands[i].getBuilderName();
-					if (builderID.equals(ExternalToolBuilder.ID) && commands[i].getArguments().get(LAUNCH_CONFIG_HANDLE) != null) {
-						// An invalid external tool entry.
-						addErrorConfig(new ErrorConfig(), -1, false);
-					} else {
-						addCommand(commands[i], -1, false);
-					}
-				}
-			}
-		} catch (CoreException e) {
-			handleException(e);
-		}
-	}
-
-	/**
-	 * Adds a build command to the table viewer.
-	 * 
-	 * @param command the command to be added
-	 * @param position the insertion position, or -1 to add at the end
-	 * @param select whether to select the newly created item.
-	 */
-	private void addCommand(ICommand command, int position, boolean select) {
-		TableItem newItem;
-		if (position < 0) {
-			newItem = new TableItem(builderTable, SWT.NONE);
-		} else {
-			newItem = new TableItem(builderTable, SWT.NONE, position);
-		}
-		newItem.setData(command);
-		updateCommandItem(newItem, command);
-		if (select) {
-			builderTable.setSelection(position);
-		}
-	}
-	
-	/**
-	 * Adds the given erroneous configuration entry to the table
-	 * and selection it if <code>select</code> is <code>true</code>.
-	 */
-	private void addErrorConfig(ErrorConfig config, int position, boolean select) {
-		TableItem newItem;
-		if (position < 0) {
-			newItem = new TableItem(builderTable, SWT.NONE);
-		} else {
-			newItem = new TableItem(builderTable, SWT.NONE, position);
-		}
-		newItem.setData(config);
-		newItem.setText(ExternalToolsUIMessages.getString("BuilderPropertyPage.invalidBuildTool")); //$NON-NLS-1$
-		newItem.setImage(invalidBuildToolImage);
-		if (select) {
-			builderTable.setSelection(position);
-		}
-	}
-
-	/**
-	 * Adds the given launch configuration to the table and selects it if
-	 * <code>select</code> is <code>true</code>.
-	 */
-	private void addConfig(ILaunchConfiguration config, boolean select) {
-		TableItem newItem = new TableItem(builderTable, SWT.NONE);
-		newItem.setData(config);
-		updateConfigItem(newItem, config);
-		if (select) {
-			builderTable.setSelection(builderTable.getItemCount());
-		}
-	}
-
-	private void updateConfigItem(TableItem item, ILaunchConfiguration config) {
-		item.setText(labelProvider.getText(config));
-		Image configImage = labelProvider.getImage(config);
-		if (configImage == null) {
-			configImage= builderImage;
-		}
-		item.setImage(configImage);
-	}
-	
-	/**
-	 * Converts the given config to a build command which is stored in the
-	 * given command.
-	 *
-	 * @return the configured build command
-	 */
-	private ICommand toBuildCommand(ILaunchConfiguration config, ICommand command) throws CoreException {
-		Map args= null;
-		if (isUnmigratedConfig(config)) {
-			// This config represents an old external tool builder that hasn't
-			// been edited. Try to find the old ICommand and reuse the arguments.
-			// The goal here is to not change the storage format of old, unedited builders.
-			ICommand[] commands= getInputProject().getDescription().getBuildSpec();
-			for (int i = 0; i < commands.length; i++) {
-				ICommand projectCommand = commands[i];
-				String name= ExternalToolMigration.getNameFromCommandArgs(projectCommand.getArguments());
-				if (name != null && name.equals(config.getName())) {
-					args= projectCommand.getArguments();
-					break;
-				}
-			}
-		} else {
-			if (config instanceof ILaunchConfigurationWorkingCopy) {
-				ILaunchConfigurationWorkingCopy workingCopy= (ILaunchConfigurationWorkingCopy) config;
-				if (workingCopy.getOriginal() != null) {
-					config= workingCopy.getOriginal();
-				}
-			}
-			args= new HashMap();
-			// Launch configuration builders are stored by storing their handle
-			args.put(LAUNCH_CONFIG_HANDLE, config.getMemento());
-		}
-		command.setBuilderName(ExternalToolBuilder.ID);
-		command.setArguments(args);
-		return command;
-	}
-
-	/**
-	 * Creates and returns a button with the given label, id, and enablement.
-	 */
-	private Button createButton(Composite parent, String label) {
-		Button button = new Button(parent, SWT.PUSH);
-		GridData data = new GridData();
-		data.widthHint = convertHorizontalDLUsToPixels(IDialogConstants.BUTTON_WIDTH);
-		data.heightHint = convertVerticalDLUsToPixels(IDialogConstants.BUTTON_HEIGHT);
-		button.setLayoutData(data);
-		button.setFont(parent.getFont());
-		button.setText(label);
-		button.setEnabled(false);
-		button.addSelectionListener(buttonListener);
-		return button;
-	}
-
-	/* (non-Javadoc)
-	 * Method declared on PreferencePage.
-	 */
-	protected Control createContents(Composite parent) {
-		
-		WorkbenchHelp.setHelp(parent, IExternalToolsHelpContextIds.EXTERNAL_TOOLS_BUILDER_PROPERTY_PAGE);
-		
-		Font font = parent.getFont();
-		
-		labelProvider = new BuilderPageLabelProvider();
-		builderImage = ExternalToolsPlugin.getDefault().getImageDescriptor(IMG_BUILDER).createImage();
-		invalidBuildToolImage = ExternalToolsPlugin.getDefault().getImageDescriptor(IMG_INVALID_BUILD_TOOL).createImage();
-
-		imagesToDispose.add(builderImage);
-		imagesToDispose.add(invalidBuildToolImage);
-
-		Composite topLevel = new Composite(parent, SWT.NONE);
-		GridLayout layout = new GridLayout();
-		layout.marginHeight = 0;
-		layout.marginWidth = 0;
-		topLevel.setLayout(layout);
-		topLevel.setLayoutData(new GridData(GridData.FILL_BOTH));
-
-		Label description = new Label(topLevel, SWT.WRAP);
-		description.setText(ExternalToolsUIMessages.getString("BuilderPropertyPage.description")); //$NON-NLS-1$
-		description.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-		description.setFont(font);
-
-		Composite tableAndButtons = new Composite(topLevel, SWT.NONE);
-		tableAndButtons.setLayoutData(new GridData(GridData.FILL_BOTH));
-		layout = new GridLayout();
-		layout.marginHeight = 0;
-		layout.marginWidth = 0;
-		layout.numColumns = 2;
-		tableAndButtons.setLayout(layout);
-
-		// table of builders and tools		
-		builderTable = new Table(tableAndButtons, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL | SWT.FULL_SELECTION | SWT.BORDER);
-		GridData data = new GridData(GridData.FILL_BOTH);
-		data.widthHint = BUILDER_TABLE_WIDTH;
-		builderTable.setLayoutData(data);
-		builderTable.setFont(font);
-		builderTable.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent e) {
-				handleTableSelectionChanged();
-			}
-		});
-		
-		builderTable.addListener(SWT.MouseDoubleClick, new Listener() {
-			public void handleEvent(Event event) {
-				handleEditButtonPressed();
-			}
-		});
-		
-		//button area
-		Composite buttonArea = new Composite(tableAndButtons, SWT.NONE);
-		layout = new GridLayout();
-		layout.marginHeight = 0;
-		layout.marginWidth = 0;
-		buttonArea.setLayout(layout);
-		buttonArea.setFont(font);
-		buttonArea.setLayoutData(new GridData(GridData.FILL_VERTICAL));
-		newButton = createButton(buttonArea, ExternalToolsUIMessages.getString("BuilderPropertyPage.newButton")); //$NON-NLS-1$
-		copyButton = createButton(buttonArea, ExternalToolsUIMessages.getString("BuilderPropertyPage.&Copy..._3")); //$NON-NLS-1$
-		editButton = createButton(buttonArea, ExternalToolsUIMessages.getString("BuilderPropertyPage.editButton")); //$NON-NLS-1$
-		removeButton = createButton(buttonArea, ExternalToolsUIMessages.getString("BuilderPropertyPage.removeButton")); //$NON-NLS-1$
-		enableButton = createButton(buttonArea, ExternalToolsUIMessages.getString("BuilderPropertyPage.36")); //$NON-NLS-1$
-		disableButton= createButton(buttonArea, ExternalToolsUIMessages.getString("BuilderPropertyPage.37")); //$NON-NLS-1$
-		new Label(buttonArea, SWT.LEFT);
-		upButton = createButton(buttonArea, ExternalToolsUIMessages.getString("BuilderPropertyPage.upButton")); //$NON-NLS-1$
-		downButton = createButton(buttonArea, ExternalToolsUIMessages.getString("BuilderPropertyPage.downButton")); //$NON-NLS-1$
-
-		newButton.setEnabled(true);
-		copyButton.setEnabled(true);
-
-		//populate widget contents	
-		addBuildersToTable();
-
-		return topLevel;
-	}
-
-	/**
-	 * @see org.eclipse.jface.dialogs.IDialogPage#dispose()
-	 */
-	public void dispose() {
-		super.dispose();
-		for (Iterator i = imagesToDispose.iterator(); i.hasNext();) {
-			Image image = (Image) i.next();
-			image.dispose();
-		}
-		imagesToDispose.clear();
-	}
-	
-	/**
-	 * Turns autobuilding on or off in the workspace.
-	 */
-	private void setAutobuild(boolean newState) throws CoreException {
-		IWorkspace workspace= ResourcesPlugin.getWorkspace();
-		IWorkspaceDescription wsDescription= workspace.getDescription();
-		boolean oldState= wsDescription.isAutoBuilding();
-		if (oldState != newState) {
-			wsDescription.setAutoBuilding(newState);
-			workspace.setDescription(wsDescription);
-		}
-	}
-
-	/**
-	 * Returns the project that is the input for this property page,
-	 * or <code>null</code>.
-	 */
-	private IProject getInputProject() {
-		IAdaptable element = getElement();
-		if (element instanceof IProject) {
-			return (IProject) element;
-		}
-		Object resource = element.getAdapter(IResource.class);
-		if (resource instanceof IProject) {
-			return (IProject) resource;
-		}
-		return null;
-	}
-
-	/**
-	 * One of the buttons has been pressed, act accordingly.
-	 */
-	private void handleButtonPressed(Button button) {
-		if (button == newButton) {
-			handleNewButtonPressed();
-		} else if (button == copyButton) {
-			handleCopyButtonPressed();
-		} else if (button == editButton) {
-			handleEditButtonPressed();
-		} else if (button == removeButton) {
-			handleRemoveButtonPressed();
-		} else if (button == upButton) {
-			moveSelectionUp();
-		} else if (button == downButton) {
-			moveSelectionDown();
-		} else if (button == enableButton) {
-			handleEnableButtonPressed();
-		} else if (button == disableButton) {
-			handleDisableButtonPressed();
-		}
-		handleTableSelectionChanged();
-		builderTable.setFocus();
-	}
-
-	/**
-	 * 
-	 */
-	private void handleDisableButtonPressed() {
-		handleToggleEnabledButtonPressed(false);
-	}
-
-	/**
-	 * 
-	 */
-	private void handleEnableButtonPressed() {
-		handleToggleEnabledButtonPressed(true);
-	}
-
-	/**
-	 * A button which toggles launch config enabled state has been 
-	 * pressed. The selected configs should be enabled or disabled.
-	 */
-	private void handleToggleEnabledButtonPressed(boolean enable) {
-		TableItem[] selection = builderTable.getSelection();
-		TableItem item;
-		for (int i = 0; i < selection.length; i++) {
-			item= selection[i];
-			Object data= item.getData();
-			if (data instanceof ILaunchConfiguration) {
-				ILaunchConfiguration configuration= (ILaunchConfiguration) data;
-				ILaunchConfigurationWorkingCopy workingCopy;
-				try {
-					if (configuration instanceof ILaunchConfigurationWorkingCopy) {
-						workingCopy = (ILaunchConfigurationWorkingCopy) configuration;
-					} else {
-						// Replace the config with a working copy
-						workingCopy = configuration.getWorkingCopy();
-						item.setData(workingCopy);
-					}
-					workingCopy.setAttribute(IExternalToolConstants.ATTR_BUILDER_ENABLED, enable);
-				} catch (CoreException e) {
-					continue;
-				}
-				userHasMadeChanges= true;
-				updateConfigItem(item, workingCopy);
-			}
-		}
-	}
-
-	/**
-	 * The user has pressed the copy button. Prompt them to select a
-	 * configuration to copy.
-	 */	
-	private void handleCopyButtonPressed() {
-		ILaunchManager manager= DebugPlugin.getDefault().getLaunchManager();
-		List toolTypes= getConfigurationTypes(IExternalToolConstants.ID_EXTERNAL_TOOLS_LAUNCH_CATEGORY);
-		List configurations= new ArrayList();
-		Iterator iter= toolTypes.iterator();
-		while (iter.hasNext()) {
-			try {
-				ILaunchConfiguration[] configs= manager.getLaunchConfigurations((ILaunchConfigurationType) iter.next());
-				for (int i = 0; i < configs.length; i++) {
-					configurations.add(configs[i]);	
-				}
-			} catch (CoreException e) {
-			}
-		}
-		ElementListSelectionDialog dialog= new ElementListSelectionDialog(getShell(), labelProvider);
-		dialog.setTitle(ExternalToolsUIMessages.getString("BuilderPropertyPage.Copy_configuration_4")); //$NON-NLS-1$
-		dialog.setMessage(ExternalToolsUIMessages.getString("BuilderPropertyPage.&Choose_a_configuration_to_copy__5")); //$NON-NLS-1$
-		dialog.setElements(configurations.toArray());
-		if (dialog.open() == Window.CANCEL) {
-			return;
-		}
-		Object results[]= dialog.getResult();
-		if (results.length == 0) { //OK pressed with nothing selected
-			return;
-		}
-		ILaunchConfiguration config= (ILaunchConfiguration) results[0];
-		ILaunchConfiguration newConfig= null;
-		boolean wasAutobuilding= ResourcesPlugin.getWorkspace().getDescription().isAutoBuilding();
-		try {
-			setAutobuild(false);
-			newConfig= duplicateConfiguration(config);
-		} catch (CoreException e) {
-			handleException(e);
-		} finally {
-			try {
-				setAutobuild(wasAutobuilding);
-			} catch (CoreException e) {
-				handleException(e);
-			}
-		}
-		if (newConfig != null) {
-			userHasMadeChanges= true;
-			addConfig(newConfig, true);
-			newConfigList.add(newConfig);
-		}
-	}
-	
-	/**
-	 * Returns a duplicate of the given configuration. The new configuration
-	 * will be of the same type as the given configuration or of the duplication
-	 * type registered for the given configuration via the extension point
-	 * IExternalToolConstants.EXTENSION_POINT_CONFIGURATION_DUPLICATION_MAPS.
-	 */
-	private ILaunchConfiguration duplicateConfiguration(ILaunchConfiguration config) throws CoreException {
-		Map attributes= null;
-		attributes= config.getAttributes();
-		String newName= config.getName() + ExternalToolsUIMessages.getString("BuilderPropertyPage._[Builder]_6"); //$NON-NLS-1$
-		newName= DebugPlugin.getDefault().getLaunchManager().generateUniqueLaunchConfigurationNameFrom(newName);
-		ILaunchConfigurationType newType= getConfigurationDuplicationType(config);
-		ILaunchConfigurationWorkingCopy newWorkingCopy= newType.newInstance(getBuilderFolder(true), newName);
-		newWorkingCopy.setAttributes(attributes);
-		return newWorkingCopy.doSave();
-	}
-	
-	/**
-	 * Returns the type of launch configuration that should be created when
-	 * duplicating the given configuration as a project builder. Queries to see
-	 * if an extension has been specified to explicitly declare the mapping.
-	 */
-	private ILaunchConfigurationType getConfigurationDuplicationType(ILaunchConfiguration config) throws CoreException {
-		IExtensionPoint ep= ExternalToolsPlugin.getDefault().getDescriptor().getExtensionPoint(IExternalToolConstants.EXTENSION_POINT_CONFIGURATION_DUPLICATION_MAPS); 
-		IConfigurationElement[] elements = ep.getConfigurationElements();
-		String sourceType= config.getType().getIdentifier();
-		String builderType= null;
-		for (int i= 0; i < elements.length; i++) {
-			IConfigurationElement element= elements[i];
-			if (element.getName().equals(TAG_CONFIGURATION_MAP) && sourceType.equals(element.getAttribute(TAG_SOURCE_TYPE))) {
-				builderType= element.getAttribute(TAG_BUILDER_TYPE);
-				break;
-			}
-		}
-		if (builderType != null) {
-			ILaunchConfigurationType type= DebugPlugin.getDefault().getLaunchManager().getLaunchConfigurationType(builderType);
-			if (type != null) {
-				return type;
-			}
-		}
-		return config.getType();
-	}
-
-	/**
-	 * The user has pressed the remove button. Delete the selected builder.
-	 */
-	private void handleRemoveButtonPressed() {
-		TableItem[] selection = builderTable.getSelection();
-		if (selection != null) {
-			if (configsToBeDeleted == null) {
-				configsToBeDeleted= new ArrayList(selection.length);
-			}
-			userHasMadeChanges= true;
-			for (int i = 0; i < selection.length; i++) {
-				Object data= selection[i].getData();
-				if (data instanceof ILaunchConfiguration) {
-					configsToBeDeleted.add(data);
-				}
-				selection[i].dispose();
-			}
-		}
-	}
-	
-	/**
-	 * The user has pressed the new button. Create a new configuration and open
-	 * the launch configuration edit dialog on the new config.
-	 */
-	private void handleNewButtonPressed() {
-		ILaunchConfigurationType type = promptForConfigurationType();
-		if (type == null) {
-			return;
-		}
-		boolean wasAutobuilding= ResourcesPlugin.getWorkspace().getDescription().isAutoBuilding();
-		try {
-			ILaunchConfigurationWorkingCopy workingCopy = null;
-			String name= DebugPlugin.getDefault().getLaunchManager().generateUniqueLaunchConfigurationNameFrom(ExternalToolsUIMessages.getString("BuilderPropertyPage.New_Builder_7")); //$NON-NLS-1$
-			workingCopy = type.newInstance(getBuilderFolder(true), name);		
-			
-			StringBuffer buffer= new StringBuffer(IExternalToolConstants.BUILD_TYPE_FULL);
-			buffer.append(',');
-			buffer.append(IExternalToolConstants.BUILD_TYPE_INCREMENTAL);
-			buffer.append(',');
-			workingCopy.setAttribute(IExternalToolConstants.ATTR_RUN_BUILD_KINDS, buffer.toString());
-			
-			ILaunchConfiguration config = null;
-			setAutobuild(false);
-			config = workingCopy.doSave();
-			//needs to be added here in case the user hits apply in the edit dialog
-			//then we can correctly update the list with the new config.
-			newConfigList.add(config);
-			int code= editConfiguration(config);
-			if (code == Window.CANCEL) {
-				// If the user cancelled, delete the newly created config
-				newConfigList.remove(config);
-				config.delete();
-			} else {
-				userHasMadeChanges= true;
-				//retrieve the last "new" config
-				//may have been changed by the user pressing apply in the edit dialog
-				addConfig((ILaunchConfiguration)newConfigList.get(newConfigList.size() - 1), true);
-			}
-		} catch (CoreException e) {
-			handleException(e);
-		} finally {
-			try {
-				setAutobuild(wasAutobuilding);
-			} catch (CoreException e) {
-				handleException(e);
-			}
-		}
-	}
-	
-	/**
-	 * Prompts the user to edit the given launch configuration. Returns the
-	 * return code from opening the launch configuration dialog.
-	 */
-	private int editConfiguration(ILaunchConfiguration config) throws CoreException {
-		ILaunchManager manager= DebugPlugin.getDefault().getLaunchManager();
-		manager.addLaunchConfigurationListener(configurationListener);
-		int code= DebugUITools.openLaunchConfigurationPropertiesDialog(getShell(), config, IExternalToolConstants.ID_EXTERNAL_TOOLS_BUILDER_LAUNCH_GROUP);
-		manager.removeLaunchConfigurationListener(configurationListener);
-		return code;
-	}
-	
-	/**
-	 * Prompts the user to choose a launch configuration type to create and
-	 * returns the type the user selected or <code>null</code> if the user
-	 * cancelled.
-	 * 
-	 * @return the configuration type selected by the user or <code>null</code>
-	 * if the user cancelled.
-	 */
-	private ILaunchConfigurationType promptForConfigurationType() {
-		List externalToolTypes= getConfigurationTypes(IExternalToolConstants.ID_EXTERNAL_TOOLS_BUILDER_LAUNCH_CATEGORY);
-
-		ElementListSelectionDialog dialog = new ElementListSelectionDialog(getShell(), labelProvider);
-		dialog.setElements(externalToolTypes.toArray());
-		dialog.setMultipleSelection(false);
-		dialog.setTitle(ExternalToolsUIMessages.getString("BuilderPropertyPage.Choose_configuration_type_8")); //$NON-NLS-1$
-		dialog.setMessage(ExternalToolsUIMessages.getString("BuilderPropertyPage.Choose_an_external_tool_type_to_create_9")); //$NON-NLS-1$
-		dialog.open();
-		Object result[] = dialog.getResult();
-		if (result == null || result.length == 0) {
-			return null;
-		}
-		return (ILaunchConfigurationType) result[0];
-	}
-	
-	/**
-	 * Returns the launch configuration types of the given category
-	 */
-	private List getConfigurationTypes(String category) {
-		ILaunchConfigurationType types[] = DebugPlugin.getDefault().getLaunchManager().getLaunchConfigurationTypes();
-		List externalToolTypes = new ArrayList();
-		for (int i = 0; i < types.length; i++) {
-			ILaunchConfigurationType configurationType = types[i];
-			if (category.equals(configurationType.getCategory())) {
-				externalToolTypes.add(configurationType);
-			}
-		}
-		return externalToolTypes;
-	}
-	
-	/**
-	 * The user has pressed the edit button. Open the launch configuration edit
-	 * dialog on the selection after migrating the tool if necessary.
-	 */
-	private void handleEditButtonPressed() {
-		TableItem selection = builderTable.getSelection()[0];
-		if (selection != null) {
-			Object data = selection.getData();
-			if (data instanceof ILaunchConfiguration) {
-				ILaunchConfiguration config= (ILaunchConfiguration) data;
-				if (isUnmigratedConfig(config)) {
-					if (!shouldProceedWithMigration()) {
-						return;
-					}
-					try {
-						config= migrateBuilderConfiguration((ILaunchConfigurationWorkingCopy) config);
-					} catch (CoreException e) {
-						handleException(e);
-						return;
-					}
-					// Replace the working copy in the table with the migrated configuration
-					selection.setData(config);
-				}
-				userHasMadeChanges= true;
-				boolean wasAutobuilding= ResourcesPlugin.getWorkspace().getDescription().isAutoBuilding();
-				try {
-					setAutobuild(false);
-					editConfiguration(config);
-				} catch (CoreException e) {
-					handleException(e);
-				} finally {
-					try {
-						setAutobuild(wasAutobuilding);
-					} catch (CoreException e) {
-						handleException(e);
-					}
-				}
-			}
-		}
-	}
-	
-	/**
-	 * Migrates the launch configuration working copy, which is based on an old-
-	 * style external tool builder, to a new, saved launch configuration. The
-	 * returned launch configuration will contain the same attributes as the
-	 * given working copy with the exception of the configuration name, which
-	 * may be changed during the migration. The name of the configuration will
-	 * only be changed if the current name is not a valid name for a saved
-	 * config.
-	 * 
-	 * @param workingCopy the launch configuration containing attributes from an
-	 * old-style project builder.
-	 * @return ILaunchConfiguration a new, saved launch configuration whose
-	 * attributes match those of the given working copy as well as possible
-	 * @throws CoreException if an exception occurs while attempting to save the
-	 * new launch configuration
-	 */
-	private ILaunchConfiguration migrateBuilderConfiguration(ILaunchConfigurationWorkingCopy workingCopy) throws CoreException {
-		workingCopy.setContainer(getBuilderFolder(true));
-		// Before saving, make sure the name is valid
-		String name= workingCopy.getName();
-		name.replace('/', '.');
-		if (name.charAt(0) == ('.')) {
-			name = name.substring(1);
-		}
-		IStatus status = ResourcesPlugin.getWorkspace().validateName(name, IResource.FILE);
-		if (!status.isOK()) {
-			name = "ExternalTool"; //$NON-NLS-1$
-		}
-		name = DebugPlugin.getDefault().getLaunchManager().generateUniqueLaunchConfigurationNameFrom(name);
-		workingCopy.rename(name);
-		return workingCopy.doSave();
-	}
-	
-	/**
-	 * Prompts the user to proceed with the migration of a project builder from
-	 * the old format to the new, launch configuration-based, format and returns
-	 * whether or not the user wishes to proceed with the migration.
-	 * 
-	 * @return boolean whether or not the user wishes to proceed with migration
-	 */
-	private boolean shouldProceedWithMigration() {
-		if (!ExternalToolsPlugin.getDefault().getPreferenceStore().getBoolean(IPreferenceConstants.PROMPT_FOR_MIGRATION)) {
-			// User has asked not to be prompted
-			return true;
-		}
-		// Warn the user that editing an old config will cause storage migration.
-		return MessageDialogWithToggle.openQuestion(getShell(), ExternalToolsUIMessages.getString("BuilderPropertyPage.Migrate_project_builder_10"), //$NON-NLS-1$
-			ExternalToolsUIMessages.getString("BuilderPropertyPage.Not_Support"), //$NON-NLS-1$
-			IPreferenceConstants.PROMPT_FOR_MIGRATION,
-			ExternalToolsUIMessages.getString("BuilderPropertyPage.Prompt"), //$NON-NLS-1$
-			ExternalToolsPlugin.getDefault().getPreferenceStore());
-	}
-
-	/**
-	 * Returns the folder where project builders should be stored or
-	 * <code>null</code> if the folder could not be created
-	 */
-	private IFolder getBuilderFolder(boolean create) {
-		IFolder folder = getInputProject().getFolder(".externalToolBuilders"); //$NON-NLS-1$
-		if (!folder.exists() && create) {
-			try {
-				folder.create(true, true, new NullProgressMonitor());
-			} catch (CoreException e) {
-				return null;
-			}
-		}
-		return folder;
-	}
-
-	/**
-	 * Handles unexpected internal exceptions
-	 */
-	private void handleException(Exception e) {
-		IStatus status;
-		if (e instanceof CoreException) {
-			status = ((CoreException) e).getStatus();
-		} else {
-			status = new Status(IStatus.ERROR, IExternalToolConstants.PLUGIN_ID, 0, ExternalToolsUIMessages.getString("BuilderPropertyPage.statusMessage"), e); //$NON-NLS-1$
-		}
-		ErrorDialog.openError(getShell(), ExternalToolsUIMessages.getString("BuilderPropertyPage.errorTitle"), //$NON-NLS-1$
-				ExternalToolsUIMessages.getString("BuilderPropertyPage.errorMessage"), //$NON-NLS-1$
-				status);
-	}
-
-	/**
-	 * The user has selected a different builder in table.
-	 * Update button enablement.
-	 */
-	private void handleTableSelectionChanged() {
-		newButton.setEnabled(true);
-		TableItem[] items = builderTable.getSelection();
-		boolean validSelection= items != null && items.length > 0;
-		boolean enableEdit= validSelection;
-		boolean enableRemove= validSelection;
-		boolean enableUp= validSelection;
-		boolean enableDown= validSelection;
-		boolean enableEnable= validSelection;
-		boolean enableDisable= validSelection;
-		if (validSelection) {
-			if (items.length > 1) {
-				enableEdit= false;
-			}
-			int indeces[]= builderTable.getSelectionIndices();
-			int max = builderTable.getItemCount();
-			enableUp= indeces[0] != 0;
-			enableDown= indeces[indeces.length - 1] < max - 1;
-			boolean disabledSelected= false; // Any disabled configs selected?
-			boolean enabledSelected= false; // Any enabled configs selected?
-			for (int i = 0; i < items.length; i++) {
-				TableItem item = items[i];
-				Object data= item.getData();
-				if (data instanceof ILaunchConfiguration) {
-					ILaunchConfiguration config= (ILaunchConfiguration) data;
-					boolean configEnabled= true;
-					try {
-						configEnabled = ExternalToolsUtil.isBuilderEnabled(config);
-					} catch (CoreException e) {
-						ExternalToolsPlugin.getDefault().log(e);
-					}
-					if (configEnabled) {
-						enabledSelected= true;
-					} else {
-						disabledSelected= true;
-					}
-					if (isUnmigratedConfig(config)) {
-						enableEnable= false;
-						enableDisable= false;
-					}
-				} else {
-					enableEdit= false;
-					enableUp= false;
-					enableDown= false;
-					enableEnable= false;
-					enableDisable= false;
-					if (data instanceof ErrorConfig) {
-						continue;
-					}
-					enableRemove= false;
-					break;
-				}
-			}
-			if (!disabledSelected) {
-				enableEnable= false;
-			}
-			if (!enabledSelected) {
-				enableDisable= false;
-			}
-		}
-		editButton.setEnabled(enableEdit);
-		removeButton.setEnabled(enableRemove);
-		upButton.setEnabled(enableUp);
-		downButton.setEnabled(enableDown);
-		enableButton.setEnabled(enableEnable);
-		disableButton.setEnabled(enableDisable);
-	}
-
-	/**
-	 * Moves an entry in the builder table to the given index.
-	 */
-	private void move(TableItem item, int index) {
-		userHasMadeChanges= true;
-		Object data = item.getData();
-		String text = item.getText();
-		Image image = item.getImage();
-		item.dispose();
-		TableItem newItem = new TableItem(builderTable, SWT.NONE, index);
-		newItem.setData(data);
-		newItem.setText(text);
-		newItem.setImage(image);
-	}
-
-	/**
-	 * Move the current selection in the build list down.
-	 */
-	private void moveSelectionDown() {
-		int indices[]= builderTable.getSelectionIndices();
-		if (indices.length < 1) {
-			return;
-		}
-		int newSelection[]= new int[indices.length];
-		int max= builderTable.getItemCount() - 1;
-		for (int i = indices.length - 1; i >= 0; i--) {
-			int index= indices[i];
-			if (index < max) {
-				move (builderTable.getItem(index), index + 1);
-				newSelection[i]= index + 1;
-			}
-		}
-		builderTable.setSelection(newSelection);
-	}
-
-	/**
-	 * Move the current selection in the build list up.
-	 */
-	private void moveSelectionUp() {
-		int indices[]= builderTable.getSelectionIndices();
-		int newSelection[]= new int[indices.length];
-		for (int i = 0; i < indices.length; i++) {
-			int index= indices[i];
-			if (index > 0) {
-				move (builderTable.getItem(index), index - 1);
-				newSelection[i]= index - 1;
-			}
-		}
-		builderTable.setSelection(newSelection);
-	}
-
-	/* (non-Javadoc)
-	 * Method declared on IPreferencePage.
-	 */
-	public boolean performOk() {
-		if (!userHasMadeChanges) {
-			return super.performOk();
-		}
-		userHasMadeChanges= false;
-		if (configsToBeDeleted != null) {
-			deleteConfigurations();
-		}
-		IProject project = getInputProject();
-		//get all the build commands
-		int numCommands = builderTable.getItemCount();
-		ICommand[] commands = new ICommand[numCommands];
-		for (int i = 0; i < numCommands; i++) {
-			Object data = builderTable.getItem(i).getData();
-			if (data instanceof ICommand) {
-			} else if (data instanceof ILaunchConfiguration) {
-				ILaunchConfiguration config= (ILaunchConfiguration) data;
-				if (!isUnmigratedConfig(config) && (config instanceof ILaunchConfigurationWorkingCopy)) {
-					ILaunchConfigurationWorkingCopy workingCopy= ((ILaunchConfigurationWorkingCopy) config);
-					// Save any changes to the config (such as enable/disable)
-					if (workingCopy.isDirty()) {
-						try {
-							workingCopy.doSave();
-						} catch (CoreException e) {
-							MessageDialog.openError(getShell(), ExternalToolsUIMessages.getString("BuilderPropertyPage.39"), MessageFormat.format(ExternalToolsUIMessages.getString("BuilderPropertyPage.40"), new String[] {workingCopy.getName()})); //$NON-NLS-1$ //$NON-NLS-2$
-						}
-					}
-				}
-				// Translate launch configs to ICommands for storage
-				ICommand newCommand = null;
-				try {
-					newCommand = project.getDescription().newCommand();
-					data = toBuildCommand(config, newCommand);
-				} catch (CoreException exception) {
-					MessageDialog.openError(getShell(), ExternalToolsUIMessages.getString("BuilderPropertyPage.Command_error_13"), ExternalToolsUIMessages.getString("BuilderPropertyPage.error")); //$NON-NLS-1$ //$NON-NLS-2$
-					return true;
-				}
-			}
-			commands[i] = (ICommand) data;
-		}
-		
-		if (checkCommandsForChange(commands)) {
-			//set the build spec
-			try {
-				IProjectDescription desc = project.getDescription();
-				desc.setBuildSpec(commands);
-				project.setDescription(desc, IResource.FORCE, null);
-			} catch (CoreException e) {
-				handleException(e);
-			}
-		}
-		return super.performOk();
-	}
-	
-	/**
-	 * Returns whether the given configuration is an "unmigrated" builder.
-	 * Unmigrated builders are external tools that are stored in an old format
-	 * but have not been migrated by the user. Old format builders are always
-	 * translated into launch config working copies in memory, but they're not
-	 * considered "migrated" until the config has been saved and the project spec
-	 * updated.
-	 * @param config the config to examine
-	 * @return whether the given config represents an unmigrated builder
-	 */
-	private boolean isUnmigratedConfig(ILaunchConfiguration config) {
-		return config.isWorkingCopy() && ((ILaunchConfigurationWorkingCopy) config).getOriginal() == null;
-	}
-
-	private void deleteConfigurations() {
-		boolean wasAutobuilding= ResourcesPlugin.getWorkspace().getDescription().isAutoBuilding();
-		try {
-			setAutobuild(false);
-		
-			Iterator itr= configsToBeDeleted.iterator();
-			while (itr.hasNext()) {
-				ILaunchConfiguration element = (ILaunchConfiguration) itr.next();
-				element.delete();
-			}
-		} catch (CoreException e) {
-			handleException(e);
-		} finally {
-			try {
-				setAutobuild(wasAutobuilding);
-			} catch (CoreException e) {
-				handleException(e);
-			}
-		}
-	}
-	
-	/**
-	 * Returns whether any of the commands have changed.
-	 */
-	private boolean checkCommandsForChange(ICommand[] newCommands) {
-		try {
-			ICommand[] oldCommands = getInputProject().getDescription().getBuildSpec();
-			if (oldCommands.length != newCommands.length) {
-				return true;
-			}
-			for (int i = 0; i < oldCommands.length; i++) {
-				ICommand oldCommand = oldCommands[i];
-				ICommand newCommand= newCommands[i];
-				String oldName= oldCommand.getBuilderName();
-				String newName= newCommand.getBuilderName();
-				if (oldName == null && newName != null) {
-					return true;
-				}
-				
-				if(oldName != null && !oldName.equals(newName)) {
-					return true;
-				}
-				Map oldArgs= oldCommand.getArguments();
-				Map newArgs= newCommand.getArguments();
-				if (oldArgs == null && newArgs != null) {
-					return true;
-				}
-				if (oldArgs == null && newArgs == null) {
-					continue;
-				}
-				if(oldArgs.size() != newArgs.size()) {
-					return true;
-				}
-				Iterator keySet= oldArgs.keySet().iterator();
-				while (keySet.hasNext()) {
-					Object key = keySet.next();
-					if (!oldArgs.get(key).equals(newArgs.get(key))) {
-						return true;
-					}
-				}
-			}
-		} catch (CoreException ce) {
-			return true;
-		}
-		return false;	
-	}
-
-	/**
-	 * Update the table item with the given build command
-	 */
-	private void updateCommandItem(TableItem item, ICommand command) {
-		String builderID = command.getBuilderName();
-		if (builderID.equals(ExternalToolBuilder.ID)) {
-			ILaunchConfiguration config = ExternalToolsUtil.configFromBuildCommandArgs(command.getArguments());
-			if (config == null) {
-				item.setText(ExternalToolsUIMessages.getString("BuilderPropertyPage.invalidBuildTool")); //$NON-NLS-1$
-				item.setImage(invalidBuildToolImage);
-				return;
-			}
-			item.setText(config.getName());
-			Image configImage = labelProvider.getImage(config);
-			if (configImage != null) {
-				imagesToDispose.add(configImage);
-				item.setImage(configImage);
-			} else {
-				item.setImage(builderImage);
-			}
-		} else {
-			// Get the human-readable name of the builder
-			IExtension extension = Platform.getPluginRegistry().getExtension(ResourcesPlugin.PI_RESOURCES, ResourcesPlugin.PT_BUILDERS, builderID);
-			String builderName;
-			if (extension != null) {
-				builderName = extension.getLabel();
-			} else {
-				builderName = MessageFormat.format(ExternalToolsUIMessages.getString("BuilderPropertyPage.missingBuilder"), new Object[] { builderID }); //$NON-NLS-1$
-			}
-			item.setText(builderName);
-			item.setImage(builderImage);
-		}
-	}
-	/**
-	 * @see org.eclipse.jface.preference.IPreferencePage#performCancel()
-	 */
-	public boolean performCancel() {
-		Iterator iter= newConfigList.iterator();
-		while (iter.hasNext()) {
-			try {
-				((ILaunchConfiguration) iter.next()).delete();
-			} catch (CoreException e) {
-				handleException(e);
-			}
-		}
-		try {
-			IFolder builderFolder= getBuilderFolder(false);
-			if (builderFolder != null && builderFolder.exists() && builderFolder.members().length == 0) {
-				// All files in the builder folder were newly created. Clean up
-				builderFolder.delete(true, false, null);
-			}
-		} catch (CoreException e) {
-			handleException(e);
-		}
-		return super.performCancel();
-	}
-}
diff --git a/org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/ui/ExternalToolsContentProvider.java b/org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/ui/ExternalToolsContentProvider.java
deleted file mode 100644
index 3b10665..0000000
--- a/org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/ui/ExternalToolsContentProvider.java
+++ /dev/null
@@ -1,87 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.externaltools.internal.ui;
-
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-
-import org.eclipse.jface.viewers.IStructuredContentProvider;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.TableViewer;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.jface.viewers.ViewerSorter;
-
-/**
- * Content provider that maintains a generic list of objects which are shown in
- * a table viewer.
- */
-public class ExternalToolsContentProvider implements IStructuredContentProvider {
-	protected List elements = new ArrayList();
-	protected TableViewer tableViewer;
-	private ViewerSorter sorter= null;
-
-	public void add(Object o) {
-		if (elements.contains(o)) {
-			return;
-		}
-		elements.add(o);
-		tableViewer.add(o);
-	}
-
-	public void dispose() {
-	}
-
-	public Object[] getElements(Object inputElement) {
-		return elements.toArray(new Object[elements.size()]);
-	}
-
-	public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
-		tableViewer = (TableViewer) viewer;
-		elements.clear();
-		if (newInput != null) {
-			tableViewer.setSorter(getSorter());
-			List list;
-			if (newInput instanceof List) {
-				list= (List) newInput;
-			} else {
-				list= Arrays.asList((Object[]) newInput);	
-			}
-			elements.addAll(list);
-		}
-	}
-
-	public void remove(Object o) {
-		elements.remove(o);
-		tableViewer.remove(o);
-	}
-	
-	public void remove(IStructuredSelection selection) {
-		Object[] array= selection.toArray();
-		elements.removeAll(Arrays.asList(array));
-		tableViewer.remove(array);
-	}
-	
-	protected ViewerSorter getSorter() {
-		if (sorter == null) {
-			sorter= new ViewerSorter() {
-				/**
-				 * @see org.eclipse.jface.viewers.ViewerSorter#compare(org.eclipse.jface.viewers.Viewer, java.lang.Object, java.lang.Object)
-				 */
-				public int compare(Viewer viewer, Object e1, Object e2) {
-					return e1.toString().compareToIgnoreCase(e2.toString());
-				}
-			};
-		}
-		return sorter;
-	}
-}
diff --git a/org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/ui/ExternalToolsPreferencePage.java b/org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/ui/ExternalToolsPreferencePage.java
deleted file mode 100644
index 613cd09..0000000
--- a/org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/ui/ExternalToolsPreferencePage.java
+++ /dev/null
@@ -1,86 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.externaltools.internal.ui;
-
-
-import org.eclipse.jface.preference.PreferencePage;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Font;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.ui.IWorkbench;
-import org.eclipse.ui.IWorkbenchPreferencePage;
-import org.eclipse.ui.externaltools.internal.model.ExternalToolsPlugin;
-import org.eclipse.ui.externaltools.internal.model.IExternalToolsHelpContextIds;
-import org.eclipse.ui.externaltools.internal.model.IPreferenceConstants;
-import org.eclipse.ui.help.WorkbenchHelp;
-
-/**
- * Preference page that allows the user to customize external tools
- */
-public class ExternalToolsPreferencePage extends PreferencePage implements IWorkbenchPreferencePage {
-
-	private Button promptForMigrationButton;
-	
-	public ExternalToolsPreferencePage() {
-		setPreferenceStore(ExternalToolsPlugin.getDefault().getPreferenceStore());
-		setDescription(ExternalToolsUIMessages.getString("ExternalToolsPreferencePage.External_tool_project_builders_migration_2")); //$NON-NLS-1$
-	}
-
-	/**
-	 * @see org.eclipse.jface.preference.PreferencePage#createContents(org.eclipse.swt.widgets.Composite)
-	 */
-	protected Control createContents(Composite parent) {
-		Font font = parent.getFont();
-
-		WorkbenchHelp.setHelp(parent, IExternalToolsHelpContextIds.EXTERNAL_TOOLS_PREFERENCE_PAGE);
-		//The main composite
-		Composite composite = new Composite(parent, SWT.NULL);
-		GridLayout layout = new GridLayout();
-		layout.marginHeight=0;
-		layout.marginWidth=0;
-		composite.setLayout(layout);
-		composite.setFont(font);
-				
-		promptForMigrationButton= new Button(composite, SWT.CHECK | SWT.LEFT);
-		promptForMigrationButton.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_BEGINNING));
-		promptForMigrationButton.setFont(font);
-		promptForMigrationButton.setText(ExternalToolsUIMessages.getString("ExternalToolsPreferencePage.Prompt_before_migrating_3")); //$NON-NLS-1$
-		promptForMigrationButton.setSelection(getPreferenceStore().getBoolean(IPreferenceConstants.PROMPT_FOR_MIGRATION));
-		
-		return composite;
-	}
-	
-	/**
-	 * @see org.eclipse.ui.IWorkbenchPreferencePage#init(org.eclipse.ui.IWorkbench)
-	 */
-	public void init(IWorkbench workbench) {
-	}
-
-	/**
-	 * @see org.eclipse.jface.preference.PreferencePage#performOk()
-	 */
-	public boolean performOk() {
-		getPreferenceStore().setValue(IPreferenceConstants.PROMPT_FOR_MIGRATION, promptForMigrationButton.getSelection());
-		return super.performOk();
-	}
-
-	/**
-	 * @see org.eclipse.jface.preference.PreferencePage#performDefaults()
-	 */
-	protected void performDefaults() {
-		promptForMigrationButton.setSelection(getPreferenceStore().getDefaultBoolean(IPreferenceConstants.PROMPT_FOR_MIGRATION));
-		super.performDefaults();
-	}
-}
diff --git a/org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/ui/ExternalToolsUIMessages.java b/org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/ui/ExternalToolsUIMessages.java
deleted file mode 100644
index 576ea36..0000000
--- a/org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/ui/ExternalToolsUIMessages.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.externaltools.internal.ui;
-
-
-import java.util.MissingResourceException;
-import java.util.ResourceBundle;
-
-public final class ExternalToolsUIMessages {
-	private static final String BUNDLE_NAME= "org.eclipse.ui.externaltools.internal.ui.ExternalToolsUIMessages"; //$NON-NLS-1$
-	
-	private static final ResourceBundle RESOURCE_BUNDLE =
-			ResourceBundle.getBundle(BUNDLE_NAME);
-
-	private ExternalToolsUIMessages(){
-		// prevent instantiation of class
-	}
-	
-	/**
-	 * Returns the message with the given key in
-	 * the resource bundle. If there isn't any value under
-	 * the given key, the key is returned.
-	 *
-	 * @param key the message name
-	 * @return the message
-	 */	
-	public static String getString(String key) {
-		try {
-			return RESOURCE_BUNDLE.getString(key);
-		} catch (MissingResourceException e) {
-			return '!' + key + '!';
-		}
-	}	
-}
diff --git a/org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/ui/ExternalToolsUIMessages.properties b/org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/ui/ExternalToolsUIMessages.properties
deleted file mode 100644
index b5191e3..0000000
--- a/org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/ui/ExternalToolsUIMessages.properties
+++ /dev/null
@@ -1,48 +0,0 @@
-###############################################################################
-# Copyright (c) 2000, 2003 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials 
-# are made available under the terms of the Common Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/cpl-v10.html
-# 
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-
-BuilderPropertyPage.description = &Add external tools to the build order.
-BuilderPropertyPage.newButton = &New...
-BuilderPropertyPage.editButton = &Edit...
-BuilderPropertyPage.removeButton = &Remove
-BuilderPropertyPage.upButton = &Up
-BuilderPropertyPage.downButton = &Down
-BuilderPropertyPage.statusMessage = Internal error
-BuilderPropertyPage.errorTitle = External Tool Builder Problem
-BuilderPropertyPage.errorMessage = Internal error
-BuilderPropertyPage.invalidBuildTool = Invalid External Tool Builder
-BuilderPropertyPage.missingBuilder = Missing builder ({0})
-BuilderPropertyPage.Exists=Builder launch configuration {0} no longer exists
-BuilderPropertyPage.External_Tool_Builder_{0}_Not_Added_2=External Tool Builder {0} Not Added
-BuilderPropertyPage.&Copy..._3=&Copy...
-BuilderPropertyPage.Copy_configuration_4=Copy configuration
-BuilderPropertyPage.&Choose_a_configuration_to_copy__5=&Choose a configuration to copy:
-BuilderPropertyPage._[Builder]_6=\ [Builder]
-BuilderPropertyPage.New_Builder_7=New_Builder
-BuilderPropertyPage.Choose_configuration_type_8=Choose configuration type
-BuilderPropertyPage.Choose_an_external_tool_type_to_create_9=&Choose an external tool type to create:
-BuilderPropertyPage.Migrate_project_builder_10=Migrate project builder
-BuilderPropertyPage.Not_Support=This project builder is stored in a format that is no longer supported. If you wish to edit this builder, it will first be migrated to a new format. If you proceed, this project builder will not be understood by installations using the old format.\n\nProceed with migration?
-BuilderPropertyPage.Prompt=&Always prompt before migrating project builders
-BuilderPropertyPage.Command_error_13=Command error
-BuilderPropertyPage.error=An error occurred while saving the project\'s build commands
-
-FileSelectionDialog.Choose_Location_1=Choose Location
-FileSelectionDialog.Ok_2=Ok
-FileSelectionDialog.Cancel_3=Cancel
-
-ExternalToolsPreferencePage.External_tool_project_builders_migration_2=External tool project builders stored in an old format will be migrated to a new format when edited. Once migrated, project builders will not be understood by installations using the old format.
-ExternalToolsPreferencePage.Prompt_before_migrating_3=&Confirm before migrating external tool project builders
-BuilderPropertyPage.36=Enab&le
-BuilderPropertyPage.37=Disa&ble
-BuilderPropertyPage.38=\ (disabled)
-BuilderPropertyPage.39=Error Saving Builder
-BuilderPropertyPage.40=An exception occurred while attempting to save builder {0}
diff --git a/org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/ui/FileSelectionDialog.java b/org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/ui/FileSelectionDialog.java
deleted file mode 100644
index cd0e5d1..0000000
--- a/org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/ui/FileSelectionDialog.java
+++ /dev/null
@@ -1,230 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.externaltools.internal.ui;
-
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.core.resources.IContainer;
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.jface.dialogs.IDialogConstants;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.jface.viewers.DoubleClickEvent;
-import org.eclipse.jface.viewers.IDoubleClickListener;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.ITreeContentProvider;
-import org.eclipse.jface.viewers.SelectionChangedEvent;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.ControlEvent;
-import org.eclipse.swt.events.ControlListener;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.TableColumn;
-import org.eclipse.ui.externaltools.internal.model.IExternalToolsHelpContextIds;
-import org.eclipse.ui.externaltools.internal.model.StringMatcher;
-import org.eclipse.ui.help.WorkbenchHelp;
-import org.eclipse.ui.model.WorkbenchContentProvider;
-import org.eclipse.ui.model.WorkbenchLabelProvider;
-
-/**
- * Dialog for selecting a file in the workspace. Derived from 
- * org.eclipse.ui.dialogs.ResourceSelectionDialog
- */
-public class FileSelectionDialog extends MessageDialog {
-	// the root element to populate the viewer with
-	private IAdaptable					root;
-
-	// the visual selection widget group
-	private TreeAndListGroup	selectionGroup;
-	// constants
-	private final static int			SIZING_SELECTION_WIDGET_WIDTH = 400;
-	private final static int			SIZING_SELECTION_WIDGET_HEIGHT = 300;
-	/**
-	 * The file selected by the user.
-	 */
-	private IFile result= null;
-	/**
-	 * String matcher used to filter content
-	 */
-	private StringMatcher stringMatcher= null;
-/**
- * Creates a resource selection dialog rooted at the given element.
- *
- * @param parentShell the parent shell
- * @param rootElement the root element to populate this dialog with
- * @param message the message to be displayed at the top of this dialog, or
- *    <code>null</code> to display a default message
- */
-public FileSelectionDialog(Shell parentShell, IAdaptable rootElement, String message) {
-	super(parentShell, ExternalToolsUIMessages.getString("FileSelectionDialog.Choose_Location_1"), null, message, MessageDialog.NONE, new String[] {ExternalToolsUIMessages.getString("FileSelectionDialog.Ok_2"), ExternalToolsUIMessages.getString("FileSelectionDialog.Cancel_3")}, 0); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-	root = rootElement;
-	setShellStyle(getShellStyle() | SWT.RESIZE);
-}
-/**
- * Limits the files displayed in this dialog to files matching the given
- * pattern. The string can be a filename or a regular expression containing
- * '*' for any series of characters or '?' for any single character.
- * 
- * @param pattern a pattern used to filter the displayed files or
- * <code>null</code> to display all files. If a pattern is supplied, only files
- * whose names match the given pattern will be available for selection.
- * @param ignoreCase if true, case is ignored. If the pattern argument is
- * <code>null</code>, this argument is ignored.
- */
-public void setFileFilter(String pattern, boolean ignoreCase) {
-	if (pattern != null) {
-		stringMatcher= new StringMatcher(pattern, ignoreCase, false);
-	} else {
-		stringMatcher= null;
-	}
-}
-/* (non-Javadoc)
- * Method declared in Window.
- */
-protected void configureShell(Shell shell) {
-	super.configureShell(shell);
-	WorkbenchHelp.setHelp(shell, IExternalToolsHelpContextIds.FILE_SELECTION_DIALOG);
-}
-
-protected void createButtonsForButtonBar(Composite parent) {
-	super.createButtonsForButtonBar(parent);
-	initializeDialog();
-}
-/* (non-Javadoc)
- * Method declared on Dialog.
- */
-protected Control createDialogArea(Composite parent) {
-	// page group
-	Composite composite = (Composite) super.createDialogArea(parent);
-
-	//create the input element, which has the root resource
-	//as its only child
-
-	selectionGroup =
-		new TreeAndListGroup(
-			composite,
-			root,
-			getResourceProvider(IResource.FOLDER | IResource.PROJECT | IResource.ROOT),
-			new WorkbenchLabelProvider(),
-			getResourceProvider(IResource.FILE),
-			new WorkbenchLabelProvider(),
-			SWT.NONE,
-			// since this page has no other significantly-sized
-			// widgets we need to hardcode the combined widget's
-			// size, otherwise it will open too small
-			SIZING_SELECTION_WIDGET_WIDTH,
-			SIZING_SELECTION_WIDGET_HEIGHT);
-
-	composite.addControlListener(new ControlListener() {
-		public void controlMoved(ControlEvent e) {}
-		public void controlResized(ControlEvent e) {
-			//Also try and reset the size of the columns as appropriate
-			TableColumn[] columns = selectionGroup.getListTable().getColumns();
-			for (int i = 0; i < columns.length; i++) {
-				columns[i].pack();
-			}
-		}
-	});
-
-	return composite;
-}
-/**
- * Returns a content provider for <code>IResource</code>s that returns
- * only children of the given resource type.
- */
-private ITreeContentProvider getResourceProvider(final int resourceType) {
-	return new WorkbenchContentProvider() {
-		public Object[] getChildren(Object o) {
-			if (o instanceof IContainer) {
-				IResource[] members = null;
-				try {
-					members = ((IContainer)o).members();
-					List accessibleMembers= new ArrayList(members.length);
-					for (int i = 0; i < members.length; i++) {
-						IResource resource = members[i];
-						if (resource.isAccessible()) {
-							accessibleMembers.add(resource);
-						}
-					}
-					members= (IResource[])accessibleMembers.toArray(new IResource[accessibleMembers.size()]);
-				} catch (CoreException e) {
-					//just return an empty set of children
-					return new Object[0];
-				}
-
-				//filter out the desired resource types
-				ArrayList results = new ArrayList();
-				for (int i = 0; i < members.length; i++) {
-					//And the test bits with the resource types to see if they are what we want
-					if ((members[i].getType() & resourceType) > 0) {
-						if (members[i].getType() == IResource.FILE &&
-								stringMatcher != null &&
-								!stringMatcher.match(members[i].getName())) {
-							continue;
-						}
-						results.add(members[i]);
-					}
-				}
-				return results.toArray();
-			} else {
-				return new Object[0];
-			}
-		}
-	};
-}
-/**
- * Initializes this dialog's controls.
- */
-private void initializeDialog() {
-	selectionGroup.addSelectionChangedListener(new ISelectionChangedListener() {
-		public void selectionChanged(SelectionChangedEvent event) {
-			getOkButton().setEnabled(!selectionGroup.getListTableSelection().isEmpty());
-		}
-	});
-	selectionGroup.addDoubleClickListener(new IDoubleClickListener() {
-		public void doubleClick(DoubleClickEvent event) {
-			buttonPressed(IDialogConstants.OK_ID);
-		}
-	});
-
-	getOkButton().setEnabled(false);
-}
-
-/**
- * Returns this dialog's OK button.
- */
-protected Button getOkButton() {
-	return getButton(0);
-}
-/**
- * Returns the file the user chose or <code>null</code> if none.
- */
-public IFile getResult() {
-	return result;
-}
-
-protected void buttonPressed(int buttonId) {
-	if (buttonId == IDialogConstants.OK_ID) {
-		Object resource= selectionGroup.getListTableSelection().getFirstElement();
-		if (resource instanceof IFile) {
-			result = (IFile) resource;
-		}
-	}
-	super.buttonPressed(buttonId);
-}
-
-}
diff --git a/org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/ui/MessageDialogWithToggle.java b/org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/ui/MessageDialogWithToggle.java
deleted file mode 100644
index 613907b..0000000
--- a/org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/ui/MessageDialogWithToggle.java
+++ /dev/null
@@ -1,223 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.externaltools.internal.ui;
-
-
-import org.eclipse.jface.dialogs.IDialogConstants;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.jface.preference.IPreferenceStore;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.externaltools.internal.model.IExternalToolsHelpContextIds;
-import org.eclipse.ui.help.WorkbenchHelp;
-
-/**
- * An message dialog which allows the user to set a boolean preference.
- * 
- * This is typically used to set a preference that determines if the dialog
- * should be shown in the future
- */
-public class MessageDialogWithToggle extends MessageDialog {
-	
-	/**
-	 * The preference key which is set by the toggle button.
-	 * This key must be a boolean preference in the preference store.
-	 */
-	private String fPreferenceKey = null;
-	/**
-	 * The message displayed to the user, with the toggle button
-	 */
-	private String fToggleMessage = null;
-	private Button fToggleButton = null;
-	/**
-	 * The preference store which will be affected by the toggle button
-	 */
-	IPreferenceStore fStore = null;
-
-	public MessageDialogWithToggle(Shell parentShell, String dialogTitle, Image image, String message, int dialogImageType, String[] dialogButtonLabels, int defaultIndex, String preferenceKey, String toggleMessage, IPreferenceStore store) {
-		super(parentShell, dialogTitle, image, message, dialogImageType, dialogButtonLabels, defaultIndex);
-		fStore = store;
-		fPreferenceKey = preferenceKey;
-		fToggleMessage = toggleMessage;
-	}
-	
-	protected Control createDialogArea(Composite parent) {
-		Composite area = (Composite) super.createDialogArea(parent);
-		fToggleButton = createCheckButton(area, fToggleMessage);
-		getToggleButton().setSelection(fStore.getBoolean(fPreferenceKey));
-		return area;
-	}
-
-	/**
-	 * Creates a button with the given label and sets the default
-	 * configuration data.
-	 */
-	protected Button createCheckButton(Composite parent, String label) {
-		Button button= new Button(parent, SWT.CHECK | SWT.LEFT);
-		button.setText(label);
-
-		GridData data = new GridData(SWT.NONE);
-		data.horizontalSpan= 2;
-		data.horizontalAlignment= GridData.CENTER;
-		button.setLayoutData(data);
-		button.setFont(parent.getFont());
-
-		return button;
-	}
-
-	/**
-	 * When the OK button is pressed, store the preference.
-	 * 
-	 * @see org.eclipse.jface.dialogs.Dialog#buttonPressed(int)
-	 */
-	protected void buttonPressed(int id) {
-		if (id == IDialogConstants.OK_ID) {  // was the OK button pressed?
-			storePreference();
-		}
-		super.buttonPressed(id);
-	}
-
-	/**
-	 * Store the preference based on the user's selection
-	 */
-	protected void storePreference() {
-		fStore.setValue(fPreferenceKey, getToggleButton().getSelection());
-	}
-
-	/**
-	 * Returns the button used to toggle the dialog preference
-	 * 
-	 * @return Button the preference toggle button
-	 */
-	protected Button getToggleButton() {
-		return fToggleButton;
-	}
-	
-	/**
-	 * Convenience method to open a simple confirm (OK/Cancel) dialog.
-	 *
-	 * @param parent the parent shell of the dialog, or <code>null</code> if none
-	 * @param title the dialog's title, or <code>null</code> if none
-	 * @param message the message
-	 * @return <code>true</code> if the user presses the OK button,
-	 *    <code>false</code> otherwise
-	 */
-	public static boolean openConfirm(Shell parent, String title, String message, String preferenceKey, String toggleMessage, IPreferenceStore store) {
-		MessageDialogWithToggle dialog = new MessageDialogWithToggle(
-			parent,
-			title,
-			null,	// accept the default window icon
-			message,
-			QUESTION,
-			new String[] {IDialogConstants.OK_LABEL, IDialogConstants.CANCEL_LABEL},
-			0,		// OK is the default
-			preferenceKey,
-			toggleMessage,
-			store);
-		return dialog.open() == 0;
-	}
-	/**
-	 * Convenience method to open a standard error dialog.
-	 *
-	 * @param parent the parent shell of the dialog, or <code>null</code> if none
-	 * @param title the dialog's title, or <code>null</code> if none
-	 * @param message the message
-	 */
-	public static void openError(Shell parent, String title, String message, String preferenceKey, String toggleMessage, IPreferenceStore store) {
-		MessageDialogWithToggle dialog = new MessageDialogWithToggle(
-			parent,
-			title,
-			null,	// accept the default window icon
-			message,
-			ERROR,
-			new String[] {IDialogConstants.OK_LABEL},
-			0,		// ok is the default
-			preferenceKey,
-			toggleMessage,
-			store);
-		dialog.open();
-	}
-	/**
-	 * Convenience method to open a standard information dialog.
-	 *
-	 * @param parent the parent shell of the dialog, or <code>null</code> if none
-	 * @param title the dialog's title, or <code>null</code> if none
-	 * @param message the message
-	 */
-	public static void openInformation(
-		Shell parent,
-		String title,
-		String message, String preferenceKey, String toggleMessage, IPreferenceStore store) {
-			MessageDialogWithToggle dialog =
-				new MessageDialogWithToggle(parent, title, null, // accept the default window icon
-		message, INFORMATION, new String[] { IDialogConstants.OK_LABEL }, 0,		// ok is the default 
-		preferenceKey, toggleMessage, store);
-		dialog.open();
-	}
-	/**
-	 * Convenience method to open a simple Yes/No question dialog.
-	 *
-	 * @param parent the parent shell of the dialog, or <code>null</code> if none
-	 * @param title the dialog's title, or <code>null</code> if none
-	 * @param message the message
-	 * @return <code>true</code> if the user presses the OK button,
-	 *    <code>false</code> otherwise
-	 */
-	public static boolean openQuestion(Shell parent, String title, String message, String preferenceKey, String toggleMessage, IPreferenceStore store) {
-		MessageDialogWithToggle dialog = new MessageDialogWithToggle(
-			parent,
-			title,
-			null,	// accept the default window icon
-			message,
-			QUESTION,
-			new String[] {IDialogConstants.YES_LABEL, IDialogConstants.NO_LABEL},
-			0,		// yes is the default
-			preferenceKey,
-			toggleMessage,
-			store);
-		return dialog.open() == 0;
-	}
-	/**
-	 * Convenience method to open a standard warning dialog.
-	 *
-	 * @param parent the parent shell of the dialog, or <code>null</code> if none
-	 * @param title the dialog's title, or <code>null</code> if none
-	 * @param message the message
-	 */
-	public static void openWarning(Shell parent, String title, String message, String preferenceKey, String toggleMessage, IPreferenceStore store) {
-		MessageDialogWithToggle dialog = new MessageDialogWithToggle(
-			parent,
-			title,
-			null,	// accept the default window icon
-			message,
-			WARNING,
-			new String[] {IDialogConstants.OK_LABEL},
-			0,		// ok is the default
-			preferenceKey,
-			toggleMessage,
-			store);
-		dialog.open();
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.window.Window#configureShell(org.eclipse.swt.widgets.Shell)
-	 */
-	protected void configureShell(Shell shell) {
-		super.configureShell(shell);
-		WorkbenchHelp.setHelp(shell, IExternalToolsHelpContextIds.MESSAGE_WITH_TOGGLE_DIALOG);
-	}
-
-}
diff --git a/org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/ui/TreeAndListGroup.java b/org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/ui/TreeAndListGroup.java
deleted file mode 100644
index b1ee2da..0000000
--- a/org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/ui/TreeAndListGroup.java
+++ /dev/null
@@ -1,323 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.externaltools.internal.ui;
-
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.jface.viewers.DoubleClickEvent;
-import org.eclipse.jface.viewers.IDoubleClickListener;
-import org.eclipse.jface.viewers.ILabelProvider;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.IStructuredContentProvider;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.ITreeContentProvider;
-import org.eclipse.jface.viewers.SelectionChangedEvent;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.jface.viewers.TableViewer;
-import org.eclipse.jface.viewers.TreeViewer;
-import org.eclipse.jface.viewers.ViewerSorter;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Table;
-import org.eclipse.swt.widgets.Tree;
-import org.eclipse.ui.views.navigator.ResourceSorter;
-
-/**
- * This class was derived from org.eclipse.ui.internal.misc.CheckboxTreeAndListGroup
- *
- */
-public class TreeAndListGroup implements ISelectionChangedListener {
-	private Object root;
-	private Object currentTreeSelection;
-	private List selectionChangedListeners = new ArrayList();
-	private List doubleClickListeners= new ArrayList();
-
-	private ITreeContentProvider treeContentProvider;
-	private IStructuredContentProvider listContentProvider;
-	private ILabelProvider treeLabelProvider;
-	private ILabelProvider listLabelProvider;
-
-	// widgets
-	private TreeViewer treeViewer;
-	private TableViewer listViewer;
-	private boolean allowMultiselection= false;
-
-	/**
-	 *	Create an instance of this class.  Use this constructor if you wish to specify
-	 *	the width and/or height of the combined widget (to only hardcode one of the
-	 *	sizing dimensions, specify the other dimension's value as -1)
-	 *
-	 *	@param parent org.eclipse.swt.widgets.Composite
-	 *	@param style int
-	 *  @param rootObject java.lang.Object
-	 *	@param childPropertyName java.lang.String
-	 *	@param parentPropertyName java.lang.String
-	 *	@param listPropertyName java.lang.String
-	 *	@param width int
-	 *	@param height int
-	 */
-	public TreeAndListGroup(Composite parent, Object rootObject, ITreeContentProvider treeContentProvider, ILabelProvider treeLabelProvider, IStructuredContentProvider listContentProvider, ILabelProvider listLabelProvider, int style, int width, int height) {
-
-		root = rootObject;
-		this.treeContentProvider = treeContentProvider;
-		this.listContentProvider = listContentProvider;
-		this.treeLabelProvider = treeLabelProvider;
-		this.listLabelProvider = listLabelProvider;
-		createContents(parent, width, height, style);
-	}
-	/**
-	 * This method must be called just before this window becomes visible.
-	 */
-	public void aboutToOpen() {
-		currentTreeSelection = null;
-
-		//select the first element in the list
-		Object[] elements = treeContentProvider.getElements(root);
-		Object primary = elements.length > 0 ? elements[0] : null;
-		if (primary != null) {
-			treeViewer.setSelection(new StructuredSelection(primary));
-		}
-		treeViewer.getControl().setFocus();
-	}
-	/**
-	 *	Add the passed listener to collection of clients
-	 *	that listen for changes to list viewer selection state
-	 *
-	 *	@param listener ISelectionChangedListener
-	 */
-	public void addSelectionChangedListener(ISelectionChangedListener listener) {
-		selectionChangedListeners.add(listener);
-	}
-	
-	/**
-	 * Add the given listener to the collection of clients that listen to
-	 * double-click events in the list viewer
-	 * 
-	 * @param listener IDoubleClickListener
-	 */
-	public void addDoubleClickListener(IDoubleClickListener listener) {
-		doubleClickListeners.add(listener);
-	}
-
-	/**
-	 * Notify all selection listeners that a selection has occurred in the list
-	 * viewer
-	 */
-	protected void notifySelectionListeners(SelectionChangedEvent event) {
-		Iterator iter = selectionChangedListeners.iterator();
-		while (iter.hasNext()) {
-			 ((ISelectionChangedListener) iter.next()).selectionChanged(event);
-		}
-	}
-	
-	/**
-	 * Notify all double click listeners that a double click event has occurred
-	 * in the list viewer
-	 */
-	protected void notifyDoubleClickListeners(DoubleClickEvent event) {
-		Iterator iter= doubleClickListeners.iterator();
-		while (iter.hasNext()) {
-			((IDoubleClickListener) iter.next()).doubleClick(event);
-		}
-	}
-
-	/**
-	 *	Lay out and initialize self's visual components.
-	 *
-	 *	@param parent org.eclipse.swt.widgets.Composite
-	 *	@param width int
-	 *	@param height int
-	 */
-	protected void createContents(Composite parent, int width, int height, int style) {
-		// group pane
-		Composite composite = new Composite(parent, style);
-		composite.setFont(parent.getFont());
-		GridLayout layout = new GridLayout();
-		layout.numColumns = 2;
-		layout.makeColumnsEqualWidth = true;
-		layout.marginHeight = 0;
-		layout.marginWidth = 0;
-		composite.setLayout(layout);
-		composite.setLayoutData(new GridData(GridData.FILL_BOTH));
-
-		createTreeViewer(composite, width / 2, height);
-		createListViewer(composite, width / 2, height);
-
-		initialize();
-	}
-	/**
-	 *	Create this group's list viewer.
-	 */
-	protected void createListViewer(Composite parent, int width, int height) {
-		int style;
-		if (allowMultiselection) {
-			style= SWT.MULTI;
-		} else {
-			style= SWT.SINGLE;
-		}
-		listViewer = new TableViewer(parent, SWT.BORDER | style);
-		GridData data = new GridData(GridData.FILL_BOTH);
-		data.widthHint = width;
-		data.heightHint = height;
-		listViewer.getTable().setLayoutData(data);
-		listViewer.getTable().setFont(parent.getFont());
-		listViewer.setContentProvider(listContentProvider);
-		listViewer.setLabelProvider(listLabelProvider);
-		listViewer.setSorter(new ResourceSorter(ResourceSorter.NAME));
-		listViewer.addSelectionChangedListener(new ISelectionChangedListener() {
-			public void selectionChanged(SelectionChangedEvent event) {
-				notifySelectionListeners(event);
-			}
-		});
-		listViewer.addDoubleClickListener(new IDoubleClickListener() {
-			public void doubleClick(DoubleClickEvent event) {
-				notifyDoubleClickListeners(event);
-			}
-		});
-	}
-	/**
-	 *	Create this group's tree viewer.
-	 */
-	protected void createTreeViewer(Composite parent, int width, int height) {
-		Tree tree = new Tree(parent, SWT.BORDER);
-		GridData data = new GridData(GridData.FILL_BOTH);
-		data.widthHint = width;
-		data.heightHint = height;
-		tree.setLayoutData(data);
-		tree.setFont(parent.getFont());
-
-		treeViewer = new TreeViewer(tree);
-		treeViewer.setContentProvider(treeContentProvider);
-		treeViewer.setLabelProvider(treeLabelProvider);
-		treeViewer.setSorter(new ResourceSorter(ResourceSorter.NAME));
-		treeViewer.addSelectionChangedListener(this);
-	}
-	
-	public Table getListTable() {
-		return listViewer.getTable();
-	}
-	
-	public IStructuredSelection getListTableSelection() {
-		ISelection selection=  this.listViewer.getSelection();
-		if (selection instanceof IStructuredSelection) {
-			return (IStructuredSelection)selection;
-		} else {
-			return StructuredSelection.EMPTY;
-		}
-	}
-	
-	protected void initialListItem(Object element) {
-		Object parent = treeContentProvider.getParent(element);
-		selectAndRevealFolder(parent);
-	}
-	
-	public void selectAndRevealFolder(Object treeElement) {
-		treeViewer.reveal(treeElement);
-		IStructuredSelection selection = new StructuredSelection(treeElement);
-		treeViewer.setSelection(selection);
-	}
-	
-	public void selectAndRevealFile(Object treeElement) {
-		listViewer.reveal(treeElement);
-		IStructuredSelection selection = new StructuredSelection(treeElement);
-		listViewer.setSelection(selection);
-	}
-
-	/**
-	 *	Initialize this group's viewers after they have been laid out.
-	 */
-	protected void initialize() {
-		treeViewer.setInput(root);
-	}
-
-	/**
-	 *	Handle the selection of an item in the tree viewer
-	 *
-	 *	@param selection ISelection
-	 */
-	public void selectionChanged(SelectionChangedEvent event) {
-		IStructuredSelection selection = (IStructuredSelection) event.getSelection();
-		Object selectedElement = selection.getFirstElement();
-		if (selectedElement == null) {
-			currentTreeSelection = null;
-			listViewer.setInput(currentTreeSelection);
-			return;
-		}
-
-		// ie.- if not an item deselection
-		if (selectedElement != currentTreeSelection) {
-			listViewer.setInput(selectedElement);
-		}
-
-		currentTreeSelection = selectedElement;
-	}
-	/**
-	 *	Set the list viewer's providers to those passed
-	 *
-	 *	@param contentProvider ITreeContentProvider
-	 *	@param labelProvider ILabelProvider
-	 */
-	public void setListProviders(IStructuredContentProvider contentProvider, ILabelProvider labelProvider) {
-		listViewer.setContentProvider(contentProvider);
-		listViewer.setLabelProvider(labelProvider);
-	}
-	/**
-	 *	Set the sorter that is to be applied to self's list viewer
-	 */
-	public void setListSorter(ViewerSorter sorter) {
-		listViewer.setSorter(sorter);
-	}
-	/**
-	 * Set the root of the widget to be new Root. Regenerate all of the tables and lists from this
-	 * value.
-	 * @param newRoot
-	 */
-	public void setRoot(Object newRoot) {
-		this.root = newRoot;
-		initialize();
-	}
-
-	/**
-	 *	Set the tree viewer's providers to those passed
-	 *
-	 *	@param contentProvider ITreeContentProvider
-	 *	@param labelProvider ILabelProvider
-	 */
-	public void setTreeProviders(ITreeContentProvider contentProvider, ILabelProvider labelProvider) {
-		treeViewer.setContentProvider(contentProvider);
-		treeViewer.setLabelProvider(labelProvider);
-	}
-	/**
-	 *	Set the sorter that is to be applied to self's tree viewer
-	 */
-	public void setTreeSorter(ViewerSorter sorter) {
-		treeViewer.setSorter(sorter);
-	}
-
-	/**
-	 * Set the focus on to the list widget.
-	 */
-	public void setFocus() {
-
-		this.treeViewer.getTree().setFocus();
-	}
-	
-	public void setAllowMultiselection(boolean allowMultiselection) {
-		this.allowMultiselection= allowMultiselection;
-		
-	}
-}
diff --git a/org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/variables/BuildTypeExpander.java b/org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/variables/BuildTypeExpander.java
deleted file mode 100644
index 34e1071..0000000
--- a/org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/variables/BuildTypeExpander.java
+++ /dev/null
@@ -1,23 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.externaltools.internal.variables;
-
-import org.eclipse.debug.core.variables.DefaultVariableExpander;
-import org.eclipse.debug.core.variables.ExpandVariableContext;
-import org.eclipse.ui.externaltools.internal.model.ExternalToolBuilder;
-
-
-public class BuildTypeExpander extends DefaultVariableExpander {
-
-	public String getText(String varTag, String varValue, ExpandVariableContext context) {
-		return ExternalToolBuilder.getBuildType();
-	}
-}
diff --git a/org.eclipse.ui.externaltools/Program Tools Support/org/eclipse/ui/externaltools/internal/program/launchConfigurations/BackgroundResourceRefresher.java b/org.eclipse.ui.externaltools/Program Tools Support/org/eclipse/ui/externaltools/internal/program/launchConfigurations/BackgroundResourceRefresher.java
deleted file mode 100644
index f93c07f..0000000
--- a/org.eclipse.ui.externaltools/Program Tools Support/org/eclipse/ui/externaltools/internal/program/launchConfigurations/BackgroundResourceRefresher.java
+++ /dev/null
@@ -1,87 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.externaltools.internal.program.launchConfigurations;
-
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.core.runtime.jobs.Job;
-import org.eclipse.debug.core.DebugEvent;
-import org.eclipse.debug.core.DebugPlugin;
-import org.eclipse.debug.core.IDebugEventSetListener;
-import org.eclipse.debug.core.ILaunchConfiguration;
-import org.eclipse.debug.core.model.IProcess;
-import org.eclipse.debug.ui.launchVariables.RefreshTab;
-import org.eclipse.ui.externaltools.internal.model.ExternalToolsPlugin;
-
-/**
- * Refreshes resources as specified by a launch configuration, when 
- * an associated process terminates.
- */
-public class BackgroundResourceRefresher implements IDebugEventSetListener  {
-
-	private ILaunchConfiguration fConfiguration;
-	private IProcess fProcess;
-	
-	public BackgroundResourceRefresher(ILaunchConfiguration configuration, IProcess process) {
-		fConfiguration = configuration;
-		fProcess = process;
-	}
-	
-	/**
-	 * If the process has already terminated, resource refreshing is done
-	 * immediately in the current thread. Otherwise, refreshing is done when the
-	 * process terminates.
-	 */
-	public void startBackgroundRefresh() {
-		synchronized (fProcess) {
-			if (fProcess.isTerminated()) {
-				refresh();
-			} else {
-				DebugPlugin.getDefault().addDebugEventListener(this);
-			}
-		}
-	}
-	
-	/**
-	 * @see org.eclipse.debug.core.IDebugEventSetListener#handleDebugEvents(org.eclipse.debug.core.DebugEvent)
-	 */
-	public void handleDebugEvents(DebugEvent[] events) {
-		for (int i = 0; i < events.length; i++) {
-			DebugEvent event = events[i];
-			if (event.getSource() == fProcess && event.getKind() == DebugEvent.TERMINATE) {
-				DebugPlugin.getDefault().removeDebugEventListener(this);
-				refresh();
-				break;
-			}
-		}
-	}
-	
-	/**
-	 * Submits a job to do the refresh
-	 */
-	protected void refresh() {
-		Job job= new Job(ExternalToolsProgramMessages.getString("BackgroundResourceRefresher.0")) { //$NON-NLS-1$
-			public IStatus run(IProgressMonitor monitor) {
-				try {
-					RefreshTab.refreshResources(fConfiguration, monitor);
-				} catch (CoreException e) {
-					ExternalToolsPlugin.getDefault().log(e);
-					return e.getStatus();
-				}	
-				return Status.OK_STATUS;
-			}
-		};
-		job.schedule();
-	}
-}
\ No newline at end of file
diff --git a/org.eclipse.ui.externaltools/Program Tools Support/org/eclipse/ui/externaltools/internal/program/launchConfigurations/ExternalToolsProgramMessages.java b/org.eclipse.ui.externaltools/Program Tools Support/org/eclipse/ui/externaltools/internal/program/launchConfigurations/ExternalToolsProgramMessages.java
deleted file mode 100644
index ae2e9cc..0000000
--- a/org.eclipse.ui.externaltools/Program Tools Support/org/eclipse/ui/externaltools/internal/program/launchConfigurations/ExternalToolsProgramMessages.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.externaltools.internal.program.launchConfigurations;
-
-
-import java.util.MissingResourceException;
-import java.util.ResourceBundle;
-
-public class ExternalToolsProgramMessages {
-
-	private static final String BUNDLE_NAME = "org.eclipse.ui.externaltools.internal.program.launchConfigurations.ExternalToolsProgramMessages"; //$NON-NLS-1$
-
-	private static final ResourceBundle RESOURCE_BUNDLE =
-		ResourceBundle.getBundle(BUNDLE_NAME);
-
-	private ExternalToolsProgramMessages() {
-	}
-
-	public static String getString(String key) {
-		try {
-			return RESOURCE_BUNDLE.getString(key);
-		} catch (MissingResourceException e) {
-			return '!' + key + '!';
-		}
-	}
-}
diff --git a/org.eclipse.ui.externaltools/Program Tools Support/org/eclipse/ui/externaltools/internal/program/launchConfigurations/ExternalToolsProgramMessages.properties b/org.eclipse.ui.externaltools/Program Tools Support/org/eclipse/ui/externaltools/internal/program/launchConfigurations/ExternalToolsProgramMessages.properties
deleted file mode 100644
index 09a6890..0000000
--- a/org.eclipse.ui.externaltools/Program Tools Support/org/eclipse/ui/externaltools/internal/program/launchConfigurations/ExternalToolsProgramMessages.properties
+++ /dev/null
@@ -1,15 +0,0 @@
-###############################################################################
-# Copyright (c) 2000, 2003 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials 
-# are made available under the terms of the Common Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/cpl-v10.html
-# 
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-
-ProgramMainTab.Select=&Select a program:
-ProgramLaunchDelegate.Workbench_Closing_1=Workbench Closing
-ProgramLaunchDelegate.The_workbench_is_exiting=The workbench is exiting and a program launched from an external tool appears to still be running. These programs will be terminated when the workbench exits. It is recommended that you exit any external programs launched from the workbench before you proceed.\n\nClick OK to continue exiting the workbench.
-BackgroundResourceRefresher.0=Refreshing resources...
diff --git a/org.eclipse.ui.externaltools/Program Tools Support/org/eclipse/ui/externaltools/internal/program/launchConfigurations/ProgramBuilderTabGroup.java b/org.eclipse.ui.externaltools/Program Tools Support/org/eclipse/ui/externaltools/internal/program/launchConfigurations/ProgramBuilderTabGroup.java
deleted file mode 100644
index 57d1b52..0000000
--- a/org.eclipse.ui.externaltools/Program Tools Support/org/eclipse/ui/externaltools/internal/program/launchConfigurations/ProgramBuilderTabGroup.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.externaltools.internal.program.launchConfigurations;
-
-
-import org.eclipse.debug.ui.AbstractLaunchConfigurationTabGroup;
-import org.eclipse.debug.ui.ILaunchConfigurationDialog;
-import org.eclipse.debug.ui.ILaunchConfigurationTab;
-import org.eclipse.debug.ui.launchVariables.RefreshTab;
-import org.eclipse.ui.externaltools.internal.launchConfigurations.ExternalToolsBuilderTab;
-
-public class ProgramBuilderTabGroup extends AbstractLaunchConfigurationTabGroup {
-
-	/**
-	 * @see org.eclipse.debug.ui.ILaunchConfigurationTabGroup#createTabs(org.eclipse.debug.ui.ILaunchConfigurationDialog, java.lang.String)
-	 */
-	public void createTabs(ILaunchConfigurationDialog dialog, String mode) {
-		ILaunchConfigurationTab[] tabs = new ILaunchConfigurationTab[] {
-			new ProgramMainTab(false),
-			new RefreshTab(),
-			new ExternalToolsBuilderTab(),
-		};
-		setTabs(tabs);
-	}
-}
diff --git a/org.eclipse.ui.externaltools/Program Tools Support/org/eclipse/ui/externaltools/internal/program/launchConfigurations/ProgramLaunchDelegate.java b/org.eclipse.ui.externaltools/Program Tools Support/org/eclipse/ui/externaltools/internal/program/launchConfigurations/ProgramLaunchDelegate.java
deleted file mode 100644
index 5c792e8..0000000
--- a/org.eclipse.ui.externaltools/Program Tools Support/org/eclipse/ui/externaltools/internal/program/launchConfigurations/ProgramLaunchDelegate.java
+++ /dev/null
@@ -1,204 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Keith Seitz (keiths@redhat.com) - environment variables contribution (Bug 27243)
- *******************************************************************************/
-package org.eclipse.ui.externaltools.internal.program.launchConfigurations;
-
-
-import java.io.File;
-import java.util.HashMap;
-import java.util.Map;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.debug.core.DebugPlugin;
-import org.eclipse.debug.core.ILaunch;
-import org.eclipse.debug.core.ILaunchConfiguration;
-import org.eclipse.debug.core.ILaunchConfigurationType;
-import org.eclipse.debug.core.ILaunchManager;
-import org.eclipse.debug.core.model.ILaunchConfigurationDelegate;
-import org.eclipse.debug.core.model.IProcess;
-import org.eclipse.debug.core.variables.LaunchVariableUtil;
-import org.eclipse.debug.ui.launchVariables.RefreshTab;
-import org.eclipse.debug.ui.launchVariables.LaunchVariableContextManager;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.ui.IWindowListener;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.externaltools.internal.launchConfigurations.ExternalToolsUtil;
-import org.eclipse.ui.externaltools.internal.model.IExternalToolConstants;
-
-/**
- * Launch delegate for a program.
- */
-public class ProgramLaunchDelegate implements ILaunchConfigurationDelegate {
-
-	private static IWindowListener windowListener;
-
-	/**
-	 * A window listener that warns the user about any running programs when
-	 * the workbench closes. Programs are killed when the VM exits.
-	 */
-	private class ProgramLaunchWindowListener implements IWindowListener {
-		public void windowActivated(IWorkbenchWindow window) {
-		}
-		public void windowDeactivated(IWorkbenchWindow window) {
-		}
-		public void windowClosed(IWorkbenchWindow window) {
-			IWorkbenchWindow windows[]= PlatformUI.getWorkbench().getWorkbenchWindows();
-			if (windows.length > 1) {
-				// There are more windows still open.
-				return;
-			}
-			ILaunchManager manager= DebugPlugin.getDefault().getLaunchManager();
-			ILaunchConfigurationType programType= manager.getLaunchConfigurationType(IExternalToolConstants.ID_PROGRAM_LAUNCH_CONFIGURATION_TYPE);
-			if (programType == null) {
-				return;
-			}
-			ILaunch launches[]= manager.getLaunches();
-			ILaunchConfigurationType configType;
-			ILaunchConfiguration config;
-			for (int i = 0; i < launches.length; i++) {
-				try {
-					config= launches[i].getLaunchConfiguration();
-					if (config == null) {
-						continue;
-					}
-					configType= config.getType();
-				} catch (CoreException e) {
-					continue;
-				}
-				if (configType.equals(programType)) {
-					if (!launches[i].isTerminated()) {
-						MessageDialog.openWarning(window.getShell(), ExternalToolsProgramMessages.getString("ProgramLaunchDelegate.Workbench_Closing_1"), ExternalToolsProgramMessages.getString("ProgramLaunchDelegate.The_workbench_is_exiting")); //$NON-NLS-1$ //$NON-NLS-2$
-						break;
-					}
-				}
-			}
-		}
-		public void windowOpened(IWorkbenchWindow window) {
-		}
-	}
-
-	/**
-	 * @see org.eclipse.debug.core.model.ILaunchConfigurationDelegate#launch(org.eclipse.debug.core.ILaunchConfiguration, java.lang.String, org.eclipse.debug.core.ILaunch, org.eclipse.core.runtime.IProgressMonitor)
-	 */
-	public void launch(ILaunchConfiguration configuration, String mode, ILaunch launch, IProgressMonitor monitor) throws CoreException {
-		
-		if (monitor.isCanceled()) {
-			return;
-		}
-		
-		// resolve location
-		IPath location = ExternalToolsUtil.getLocation(configuration);
-		
-		if (monitor.isCanceled()) {
-			return;
-		}		
-		
-		// resolve working directory
-		IPath workingDirectory = ExternalToolsUtil.getWorkingDirectory(configuration);
-		
-		if (monitor.isCanceled()) {
-			return;
-		}
-		
-		// resolve arguments
-		String[] arguments = ExternalToolsUtil.getArguments(configuration);
-		
-		if (monitor.isCanceled()) {
-			return;
-		}
-		
-		int cmdLineLength = 1;
-		if (arguments != null) {
-			cmdLineLength += arguments.length;
-		}
-		String[] cmdLine = new String[cmdLineLength];
-		cmdLine[0] = location.toOSString();
-		if (arguments != null) {
-			System.arraycopy(arguments, 0, cmdLine, 1, arguments.length);
-		}
-		
-		File workingDir = null;
-		if (workingDirectory != null) {
-			workingDir = workingDirectory.toFile();
-		}
-		
-		if (monitor.isCanceled()) {
-			return;
-		}
-		
-		String[] envp = LaunchVariableUtil.getEnvironment(configuration, LaunchVariableContextManager.getDefault().getVariableContext());
-		
-		if (monitor.isCanceled()) {
-			return;
-		}
-		
-		if (windowListener == null) {
-			windowListener= new ProgramLaunchWindowListener();
-			PlatformUI.getWorkbench().addWindowListener(windowListener);
-		}
-		Process p = DebugPlugin.exec(cmdLine, workingDir, envp);
-		IProcess process = null;
-		
-		// add process type to process attributes
-		Map processAttributes = new HashMap();
-		String programName = location.lastSegment();
-		String extension = location.getFileExtension();
-		if (extension != null) {
-			programName = programName.substring(0, programName.length() - (extension.length() + 1));
-		}
-		programName = programName.toLowerCase();
-		processAttributes.put(IProcess.ATTR_PROCESS_TYPE, programName);
-		
-		if (p != null) {
-			process = DebugPlugin.newProcess(launch, p, location.toOSString(), processAttributes);
-		}
-		process.setAttribute(IProcess.ATTR_CMDLINE, generateCommandLine(cmdLine));
-		
-		if (ExternalToolsUtil.isBackground(configuration)) {
-			// refresh resources after process finishes
-			if (LaunchVariableUtil.getRefreshScope(configuration) != null) {
-				BackgroundResourceRefresher refresher = new BackgroundResourceRefresher(configuration, process);
-				refresher.startBackgroundRefresh();
-			}				
-		} else {
-			// wait for process to exit
-			while (!process.isTerminated()) {
-				try {
-					if (monitor.isCanceled()) {
-						process.terminate();
-						break;
-					}
-					Thread.sleep(50);
-				} catch (InterruptedException e) {
-				}
-			}
-			
-			// refresh resources
-			RefreshTab.refreshResources(configuration, monitor);
-		}
-	}
-	
-	private String generateCommandLine(String[] commandLine) {
-		if (commandLine.length < 1) {
-			return ""; //$NON-NLS-1$
-		}
-		StringBuffer buf= new StringBuffer(commandLine[0]);
-		for (int i= 1; i < commandLine.length; i++) {
-			buf.append(' ');
-			buf.append(commandLine[i]);
-		}	
-		return buf.toString();
-	}	
-	
-}
diff --git a/org.eclipse.ui.externaltools/Program Tools Support/org/eclipse/ui/externaltools/internal/program/launchConfigurations/ProgramMainTab.java b/org.eclipse.ui.externaltools/Program Tools Support/org/eclipse/ui/externaltools/internal/program/launchConfigurations/ProgramMainTab.java
deleted file mode 100644
index 04616f7..0000000
--- a/org.eclipse.ui.externaltools/Program Tools Support/org/eclipse/ui/externaltools/internal/program/launchConfigurations/ProgramMainTab.java
+++ /dev/null
@@ -1,55 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.externaltools.internal.program.launchConfigurations;
-
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.debug.core.variables.ILaunchVariableManager;
-import org.eclipse.debug.core.variables.LaunchVariableUtil;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.ui.externaltools.internal.launchConfigurations.ExternalToolsMainTab;
-import org.eclipse.ui.externaltools.internal.model.IExternalToolsHelpContextIds;
-import org.eclipse.ui.externaltools.internal.ui.FileSelectionDialog;
-import org.eclipse.ui.help.WorkbenchHelp;
-
-public class ProgramMainTab extends ExternalToolsMainTab {
-
-	public ProgramMainTab(boolean runInBackgroundDefaultValue) {
-		super(runInBackgroundDefaultValue);
-	}
-
-	/**
-	 * Prompts the user for a program location within the workspace and sets the
-	 * location as a String containing the workspace_loc variable or
-	 * <code>null</code> if no location was obtained from the user.
-	 */
-	protected void handleWorkspaceLocationButtonSelected() {
-		FileSelectionDialog dialog;
-		dialog = new FileSelectionDialog(getShell(), ResourcesPlugin.getWorkspace().getRoot(), ExternalToolsProgramMessages.getString("ProgramMainTab.Select")); //$NON-NLS-1$
-		dialog.open();
-		IFile file = dialog.getResult();
-		if (file == null) {
-			return;
-		}
-		locationField.setText(LaunchVariableUtil.newVariableExpression(ILaunchVariableManager.VAR_WORKSPACE_LOC, file.getFullPath().toString()));
-	}
-	
-	
-   	/* (non-Javadoc)
-	 * @see org.eclipse.debug.ui.ILaunchConfigurationTab#createControl(org.eclipse.swt.widgets.Composite)
-	 */
-	public void createControl(Composite parent) {
-		super.createControl(parent);
-		WorkbenchHelp.setHelp(getControl(), IExternalToolsHelpContextIds.EXTERNAL_TOOLS_LAUNCH_CONFIGURATION_DIALOG_PROGRAM_MAIN_TAB);
-	}
-	
-}
diff --git a/org.eclipse.ui.externaltools/Program Tools Support/org/eclipse/ui/externaltools/internal/program/launchConfigurations/ProgramTabGroup.java b/org.eclipse.ui.externaltools/Program Tools Support/org/eclipse/ui/externaltools/internal/program/launchConfigurations/ProgramTabGroup.java
deleted file mode 100644
index 8249598..0000000
--- a/org.eclipse.ui.externaltools/Program Tools Support/org/eclipse/ui/externaltools/internal/program/launchConfigurations/ProgramTabGroup.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.externaltools.internal.program.launchConfigurations;
-
-import org.eclipse.debug.ui.AbstractLaunchConfigurationTabGroup;
-import org.eclipse.debug.ui.CommonTab;
-import org.eclipse.debug.ui.EnvironmentTab;
-import org.eclipse.debug.ui.ILaunchConfigurationDialog;
-import org.eclipse.debug.ui.ILaunchConfigurationTab;
-import org.eclipse.debug.ui.launchVariables.RefreshTab;
-
-public class ProgramTabGroup extends AbstractLaunchConfigurationTabGroup {
-
-	/**
-	 * @see org.eclipse.debug.ui.ILaunchConfigurationTabGroup#createTabs(org.eclipse.debug.ui.ILaunchConfigurationDialog, java.lang.String)
-	 */
-	public void createTabs(ILaunchConfigurationDialog dialog, String mode) {
-		ILaunchConfigurationTab[] tabs = new ILaunchConfigurationTab[] {
-			new ProgramMainTab(true),
-			new RefreshTab(),
-			new EnvironmentTab(),
-			new CommonTab()
-		};
-		setTabs(tabs);
-	}
-}
diff --git a/org.eclipse.ui.externaltools/about.html b/org.eclipse.ui.externaltools/about.html
deleted file mode 100644
index 9db411a..0000000
--- a/org.eclipse.ui.externaltools/about.html
+++ /dev/null
@@ -1,30 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-<head>
-<title>About</title>
-<meta http-equiv=Content-Type content="text/html; charset=ISO-8859-1">
-</head>
-<body lang="EN-US">
-<h2>About This Content</h2>
- 
-<p>20th June, 2002</p>	
-<h3>License</h3>
-<p>Eclipse.org makes available all content in this plug-in (&quot;Content&quot;).  Unless otherwise indicated below, the Content is provided to you under the terms and conditions of the
-Common Public License Version 1.0 (&quot;CPL&quot;).  A copy of the CPL is available at <a href="http://www.eclipse.org/legal/cpl-v10.html">http://www.eclipse.org/legal/cpl-v10.html</a>.
-For purposes of the CPL, &quot;Program&quot; will mean the Content.</p>
-
-<h3>Contributions</h3>
-
-<p>If this Content is licensed to you under the terms and conditions of the CPL, any Contributions, as defined in the CPL, uploaded, submitted, or otherwise
-made available to Eclipse.org, members of Eclipse.org and/or the host of Eclipse.org web site, by you that relate to such
-Content are provided under the terms and conditions of the CPL and can be made available to others under the terms of the CPL.</p>
-
-<p>If this Content is licensed to you under license terms and conditions other than the CPL (&quot;Other License&quot;), any modifications, enhancements and/or
-other code and/or documentation (&quot;Modifications&quot;) uploaded, submitted, or otherwise made available to Eclipse.org, members of Eclipse.org and/or the
-host of Eclipse.org, by you that relate to such Content are provided under terms and conditions of the Other License and can be made available
-to others under the terms of the Other License.  In addition, with regard to Modifications for which you are the copyright holder, you are also
-providing the Modifications under the terms and conditions of the CPL and such Modifications can be made available to others under the terms of
-the CPL.</p>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/org.eclipse.ui.externaltools/build.properties b/org.eclipse.ui.externaltools/build.properties
deleted file mode 100644
index 6bd0c1e..0000000
--- a/org.eclipse.ui.externaltools/build.properties
+++ /dev/null
@@ -1,24 +0,0 @@
-###############################################################################
-# Copyright (c) 2000, 2003 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials 
-# are made available under the terms of the Common Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/cpl-v10.html
-# 
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-source.externaltools.jar = External Tools Base/,\
-				Program Tools Support/
-
-src.includes=about.html
-
-bin.includes = icons/,\
-		.options,\
-		plugin.properties,\
-		plugin.xml,\
-		about.html,\
-		*.jar,\
-				
-jars.compile.order=externaltools.jar
-jars.extra.classpath=../org.apache.ant/ant.jar
diff --git a/org.eclipse.ui.externaltools/buildfiles/exportplugin.xml b/org.eclipse.ui.externaltools/buildfiles/exportplugin.xml
deleted file mode 100644
index 99aa388..0000000
--- a/org.eclipse.ui.externaltools/buildfiles/exportplugin.xml
+++ /dev/null
@@ -1,36 +0,0 @@
-<!-- Export a jar of .class files for the org.eclipse.ui.externaltools Eclipse plug-in
-     along with other important plugin files to the "plugin-export" subdirectory
-     of the target Eclipse installation -->
-<project name="Export externaltools" default="export" basedir="..">
-
-	<!-- Set the timestamp and important properties -->
-	<target name="init">
-		<tstamp/>
-		<property name="destdir" value="../../plugin-export" />
-		<property name="dest"  value="${destdir}/org.eclipse.ui.externaltools_3.0.0" />
-	</target>
-
-	<!-- Create the jar of .class files, and copy other important files to export dir -->
-	<target name="export" depends="init">
-		<mkdir dir="${destdir}" />
-		<delete dir="${dest}" />
-		<mkdir dir="${dest}" />
-		<jar jarfile="${dest}/externaltools.jar">
-			<fileset dir="bin">
-			</fileset>
-		</jar>
-		<!-- Create the source zip -->
-		<zip zipfile="${dest}/externaltoolssrc.zip">
-			<fileset dir="External Tools Base"/>
-			<fileset dir="Program Tools Support"/>
-		</zip>
-		<copy file="plugin.xml" todir="${dest}"/>
-		<copy file="plugin.properties" todir="${dest}"/>
-		<copy file=".classpath" todir="${dest}"/>
-		<copy file=".options" todir="${dest}"/>
-		<copy todir="${dest}/icons">
-			<fileset dir="icons" />
-		</copy>		
-	</target>
-	
-</project>
diff --git a/org.eclipse.ui.externaltools/icons/full/ctool16/external_tools.gif b/org.eclipse.ui.externaltools/icons/full/ctool16/external_tools.gif
deleted file mode 100644
index 2133b45..0000000
--- a/org.eclipse.ui.externaltools/icons/full/ctool16/external_tools.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.externaltools/icons/full/dtool16/external_tools.gif b/org.eclipse.ui.externaltools/icons/full/dtool16/external_tools.gif
deleted file mode 100644
index fae592d..0000000
--- a/org.eclipse.ui.externaltools/icons/full/dtool16/external_tools.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.externaltools/icons/full/etool16/external_tools.gif b/org.eclipse.ui.externaltools/icons/full/etool16/external_tools.gif
deleted file mode 100644
index f7472c9..0000000
--- a/org.eclipse.ui.externaltools/icons/full/etool16/external_tools.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.externaltools/icons/full/obj16/builder.gif b/org.eclipse.ui.externaltools/icons/full/obj16/builder.gif
deleted file mode 100644
index 20e7bae..0000000
--- a/org.eclipse.ui.externaltools/icons/full/obj16/builder.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.externaltools/icons/full/obj16/classpath.gif b/org.eclipse.ui.externaltools/icons/full/obj16/classpath.gif
deleted file mode 100644
index f966fc3..0000000
--- a/org.eclipse.ui.externaltools/icons/full/obj16/classpath.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.externaltools/icons/full/obj16/external_tools.gif b/org.eclipse.ui.externaltools/icons/full/obj16/external_tools.gif
deleted file mode 100644
index 2133b45..0000000
--- a/org.eclipse.ui.externaltools/icons/full/obj16/external_tools.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.externaltools/icons/full/obj16/invalid_build_tool.gif b/org.eclipse.ui.externaltools/icons/full/obj16/invalid_build_tool.gif
deleted file mode 100644
index b04020b..0000000
--- a/org.eclipse.ui.externaltools/icons/full/obj16/invalid_build_tool.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.externaltools/icons/full/obj16/main_tab.gif b/org.eclipse.ui.externaltools/icons/full/obj16/main_tab.gif
deleted file mode 100644
index f9fb6b0..0000000
--- a/org.eclipse.ui.externaltools/icons/full/obj16/main_tab.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.externaltools/icons/full/wizban/ext_tools_wiz.gif b/org.eclipse.ui.externaltools/icons/full/wizban/ext_tools_wiz.gif
deleted file mode 100644
index 1a863bf..0000000
--- a/org.eclipse.ui.externaltools/icons/full/wizban/ext_tools_wiz.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.ui.externaltools/plugin.properties b/org.eclipse.ui.externaltools/plugin.properties
deleted file mode 100644
index 84d58c8..0000000
--- a/org.eclipse.ui.externaltools/plugin.properties
+++ /dev/null
@@ -1,42 +0,0 @@
-###############################################################################
-# Copyright (c) 2000, 2003 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials 
-# are made available under the terms of the Common Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/cpl-v10.html
-# 
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-
-Plugin.name = External Tools
-Plugin.providerName = Eclipse.org
-
-build_type.description= Expands to the type of build, one of "incremental", "full", "auto", or "none".
-
-ExtPoint.configurationDuplicationMaps = Launch Configuration Duplication Maps
-ExtPoint.toolTypes = External Tool Types
-ExtPoint.refreshVariables = Refresh Scope Variables
-ExternalToolsLaunchGroup.label = &External Tools
-ToolType.programName = Program
-ToolType.programDescription = An external tool that runs an application, a batch file, etc.
-ToolType.antBuildName = Ant Build
-ToolType.antBuildDescription = An external tool that runs an Ant buildfile.
-Menu.run = &Run
-ActionSet.externalTools = External Tools
-Action.externalTools = &External Tools
-Action.externalToolsTip = Run Last Tool
-PropertyPage.main = Main
-PropertyPage.option = Options
-PropertyPage.refresh = Refresh Scope
-PropertyPage.antTargets = Targets
-PropertyPage.externalToolsBuilders = External Tools Builders
-
-Builder.externalTools = Integrated External Tool Builder
-View.externalToolView = External Tools
-PreferencePage.externalToolsPreferences = External Tools
-
-Program.externalTools = Program
-
-ActionDefinition.externalToolMenuDelegateToolbar.name=Run Last Launched External Tool
-ActionDefinition.externalToolMenuDelegateToolbar.description=Runs the last launched external Tool
\ No newline at end of file
diff --git a/org.eclipse.ui.externaltools/plugin.xml b/org.eclipse.ui.externaltools/plugin.xml
deleted file mode 100644
index 93d408b..0000000
--- a/org.eclipse.ui.externaltools/plugin.xml
+++ /dev/null
@@ -1,212 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<plugin
-   id="org.eclipse.ui.externaltools"
-   name="%Plugin.name"
-   version="3.0.0"
-   provider-name="%Plugin.providerName"
-   class="org.eclipse.ui.externaltools.internal.model.ExternalToolsPlugin">
-
-   <runtime>
-      <library name="externaltools.jar">
-         <export name="*"/>
-         <packages prefixes="org.eclipse.ui.externaltools"/>
-      </library>
-   </runtime>
-   <requires>
-      <import plugin="org.apache.ant"/>
-      <import plugin="org.apache.xerces"/>
-      <import plugin="org.eclipse.ant.core"/>
-      <import plugin="org.eclipse.core.resources"/>
-      <import plugin="org.eclipse.ui"/>
-      <import plugin="org.eclipse.debug.core"/>
-      <import plugin="org.eclipse.debug.ui"/>
-   </requires>
-
-
-<!-- extension point definitions -->
-   <extension-point id="configurationDuplicationMaps" name="%ExtPoint.configurationDuplicationMaps"/>
-
-<!-- UI extensions -->
-<!-- Extensions -->
-   <extension
-         point="org.eclipse.ui.actionSets">
-      <actionSet
-            label="%ActionSet.externalTools"
-            visible="true"
-            id="org.eclipse.ui.externaltools.ExternalToolsSet">
-         <menu
-               label="%Menu.run"
-               path="additions"
-               id="org.eclipse.ui.run">
-            <separator
-                  name="ExternalToolsGroup">
-            </separator>
-         </menu>
-         <action
-               label="%Action.externalTools"
-               pulldown="true"
-               icon="icons/full/ctool16/external_tools.gif"
-               class="org.eclipse.ui.externaltools.internal.menu.ExternalToolMenuDelegate"
-               menubarPath="org.eclipse.ui.run/ExternalToolsGroup"
-               id="org.eclipse.ui.externaltools.ExternalToolMenuDelegateMenu">
-         </action>
-         <action
-               definitionId="org.eclipse.ui.externaltools.ExternalToolMenuDelegateToolbar"
-               label="%Action.externalTools"
-               pulldown="true"
-               icon="icons/full/ctool16/external_tools.gif"
-               tooltip="%Action.externalToolsTip"
-               class="org.eclipse.ui.externaltools.internal.menu.ExternalToolMenuDelegate"
-               toolbarPath="org.eclipse.debug.ui.launchActionSet/debug"
-               id="org.eclipse.ui.externaltools.ExternalToolMenuDelegateToolbar">
-         </action>
-      </actionSet>
-   </extension>
-   <extension
-         point="org.eclipse.ui.commands">
-      <command
-            name="%ActionDefinition.externalToolMenuDelegateToolbar.name"
-            description="%ActionDefinition.externalToolMenuDelegateToolbar.description"
-            category="org.eclipse.debug.ui.category.run"
-            id="org.eclipse.ui.externaltools.ExternalToolMenuDelegateToolbar">
-      </command>
-      <keyBinding
-            string=""
-            scope="org.eclipse.ui.globalScope"
-            command="org.eclipse.ui.externaltools.ExternalToolMenuDelegateToolbar"
-            configuration="org.eclipse.ui.defaultAcceleratorConfiguration">
-      </keyBinding>
-   </extension>
-   <extension
-         point="org.eclipse.ui.preferencePages">
-      <page
-            name="%PreferencePage.externalToolsPreferences"
-            category="org.eclipse.ui.preferencePages.Workbench"
-            class="org.eclipse.ui.externaltools.internal.ui.ExternalToolsPreferencePage"
-            id="org.eclipse.ui.externaltools.ExternalToolsPreferencePage">
-      </page>
-   </extension>
-   <extension
-         point="org.eclipse.ui.propertyPages">
-      <page
-            objectClass="org.eclipse.core.resources.IProject"
-            adaptable="true"
-            name="%PropertyPage.externalToolsBuilders"
-            class="org.eclipse.ui.externaltools.internal.ui.BuilderPropertyPage"
-            id="org.eclipse.ui.externaltools.propertypages.BuilderPropertyPage">
-         <filter
-               name="open"
-               value="true">
-         </filter>
-      </page>
-   </extension>
-   <extension
-         id="ExternalToolBuilder"
-         name="%Builder.externalTools"
-         point="org.eclipse.core.resources.builders">
-      <builder>
-         <run
-               class="org.eclipse.ui.externaltools.internal.model.ExternalToolBuilder">
-         </run>
-      </builder>
-   </extension>
-<!-- Launch Configuration Extensions -->
-   <extension
-         point="org.eclipse.debug.core.launchConfigurationTypes">
-      <launchConfigurationType
-            name="%Program.externalTools"
-            delegate="org.eclipse.ui.externaltools.internal.program.launchConfigurations.ProgramLaunchDelegate"
-            category="org.eclipse.ui.externaltools"
-            modes="run"
-            id="org.eclipse.ui.externaltools.ProgramLaunchConfigurationType">
-      </launchConfigurationType>
-      <launchConfigurationType
-            name="%Program.externalTools"
-            delegate="org.eclipse.ui.externaltools.internal.program.launchConfigurations.ProgramLaunchDelegate"
-            category="org.eclipse.ui.externaltools.builder"
-            modes="run"
-            id="org.eclipse.ui.externaltools.ProgramBuilderLaunchConfigurationType">
-      </launchConfigurationType>
-   </extension>
-   <extension
-         point="org.eclipse.ui.externaltools.configurationDuplicationMaps">
-      <configurationMap
-            builderType="org.eclipse.ui.externaltools.ProgramBuilderLaunchConfigurationType"
-            sourceType="org.eclipse.ui.externaltools.ProgramLaunchConfigurationType">
-      </configurationMap>
-   </extension>
-   <extension
-         point="org.eclipse.debug.ui.launchConfigurationTabGroups">
-      <launchConfigurationTabGroup
-            type="org.eclipse.ui.externaltools.ProgramLaunchConfigurationType"
-            helpContextId="org.eclipse.ui.externaltools.launchConfigHelpContext.program"
-            class="org.eclipse.ui.externaltools.internal.program.launchConfigurations.ProgramTabGroup"
-            id="org.eclipse.ui.externaltools.launchConfigurationTabGroup.program">
-      </launchConfigurationTabGroup>
-      <launchConfigurationTabGroup
-            type="org.eclipse.ui.externaltools.ProgramBuilderLaunchConfigurationType"
-            helpContextId="org.eclipse.ui.externaltools.launchConfigHelpContext.program_builder"
-            class="org.eclipse.ui.externaltools.internal.program.launchConfigurations.ProgramBuilderTabGroup"
-            id="org.eclipse.ui.externaltools.launchConfigurationTabGroup.program.builder">
-      </launchConfigurationTabGroup>
-   </extension>
-   <extension
-         point="org.eclipse.debug.ui.launchConfigurationTypeImages">
-      <launchConfigurationTypeImage
-            icon="icons/full/obj16/external_tools.gif"
-            configTypeID="org.eclipse.ui.externaltools.ProgramLaunchConfigurationType"
-            id="org.eclipse.ui.externaltools.launchConfigurationTypeImage.program">
-      </launchConfigurationTypeImage>
-      <launchConfigurationTypeImage
-            icon="icons/full/obj16/external_tools.gif"
-            configTypeID="org.eclipse.ui.externaltools.ProgramBuilderLaunchConfigurationType"
-            id="org.eclipse.ui.externaltools.launchConfigurationTypeImage.program.builder">
-      </launchConfigurationTypeImage>
-   </extension>
-   <extension
-         point="org.eclipse.debug.ui.launchGroups">
-      <launchGroup
-            label="%ExternalToolsLaunchGroup.label"
-            bannerImage="icons/full/wizban/ext_tools_wiz.gif"
-            category="org.eclipse.ui.externaltools"
-            image="icons/full/obj16/external_tools.gif"
-            mode="run"
-            id="org.eclipse.ui.externaltools.launchGroup">
-      </launchGroup>
-      <launchGroup
-            label="%ExternalToolsLaunchGroup.label"
-            bannerImage="icons/full/wizban/ext_tools_wiz.gif"
-            category="org.eclipse.ui.externaltools.builder"
-            image="icons/full/obj16/external_tools.gif"
-            public="false"
-            mode="run"
-            id="org.eclipse.ui.externaltools.launchGroup.builder">
-      </launchGroup>
-   </extension>
-<!-- Variable Extensions -->
-   <extension
-         point="org.eclipse.debug.core.contextLaunchVariables">
-      <variable
-            name="build_type"
-            expanderClass="org.eclipse.ui.externaltools.internal.variables.BuildTypeExpander"
-            description="%build_type.description">
-      </variable>
-   </extension>
-   <extension
-         point="org.eclipse.debug.core.launchConfigurationComparators">
-      <launchConfigurationComparator
-            attribute="org.eclipse.ui.externaltools.ATTR_BUILD_SCOPE"
-            class="org.eclipse.ui.externaltools.internal.launchConfigurations.WorkingSetComparator"
-            id="org.eclipse.ui.externaltools.workingSetComparator">
-      </launchConfigurationComparator>
-   </extension>
-   <extension
-         point="org.eclipse.debug.core.launchConfigurationComparators">
-      <launchConfigurationComparator
-            attribute="org.eclipse.ui.externaltools.ATTR_REFRESH_SCOPE"
-            class="org.eclipse.ui.externaltools.internal.launchConfigurations.WorkingSetComparator"
-            id="org.eclipse.ui.externaltools.workingSetComparator">
-      </launchConfigurationComparator>
-   </extension>
-
-</plugin>