Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[cdt-patch] Removal of cdt.builder packages

The main reason to do this is to make sure I don't mess things up when I 
restructure the build natures.  If we want this back, we can always 
reverse this patch.

Doug Schaefer, Senior Software Developer
IBM Rational Software, Ottawa, Ontario, Canada

Index: build/org/eclipse/cdt/core/builder/ACTool.java
===================================================================
RCS file: build/org/eclipse/cdt/core/builder/ACTool.java
diff -N build/org/eclipse/cdt/core/builder/ACTool.java
--- build/org/eclipse/cdt/core/builder/ACTool.java	17 Feb 2003 19:10:36 -0000	1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,197 +0,0 @@
-/**********************************************************************
- * Copyright (c) 2002,2003 Timesys 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: 
- * Timesys - Initial API and implementation
- **********************************************************************/
-
-package org.eclipse.cdt.core.builder;
-
-import java.io.File;
-import java.io.IOException;
-
-import org.eclipse.cdt.core.builder.model.ICTool;
-import org.eclipse.cdt.core.builder.util.Filesystem;
-import org.eclipse.cdt.internal.core.ProcessClosure;
-import org.eclipse.cdt.utils.spawner.ProcessFactory;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.Path;
-
-/**
- * <p>
- * Abstract base class to make the life of ICTool implementers
- * somewhat simpler.
- * <p>
- * Provides default implementations of all methods, such that
- * a basic tool can be defined simply by calling the appropriate
- * constructor.
- * <p>
- * Examples:
- * <p>
- * <code>
- * class CGenericTool extends ACTool {
- * 	CGenericTool() {
- * 		super("typeid", "toolid", "toolname");
- * 	}
- * }
- * 
- * class CExplicitTool extends ACTool {
- * 	CGenericTool(IPath pathToTool) {
- * 		super("typeid", "toolid", pathToTool);
- * 	}
- * }
- * </code>
- */
-public abstract class ACTool implements ICTool {
-
-	private String fTypeId;
-	private String fToolId;
-	private IPath fToolPath;
-
-	/**
-	 * Constructor.
-	 * <br>
-	 * Create a tool with the given type ID and unqiue ID by specifying
-	 * the absolute path to the executable.
-	 * <br>
-	 * @param typeId tool type ID, corresponds to a CToolType extension ID.
-	 * @param id unqiue identifier for this tool instance.
-	 * @param path explicit path to the tool.
-	 */
-	public ACTool(String typeId, String id, IPath path) {
-		fTypeId = typeId;
-		fToolId = id;
-		fToolPath = path;
-	}
-
-	/**
-	 * Constructor.
-	 * <br>
-	 * Create a tool with the given type ID and unqiue ID by specifying
-	 * the name of an executable.  The executable is located using the
-	 * "which" utility.
-	 * <br>
-	 * @param typeId tool type ID, corresponds to a CToolType extension ID.
-	 * @param id unqiue identifier for this tool instance.
-	 * @param name name of the tool executable.
-	 */
-	public ACTool(String typeId, String id, String exeName) {
-		fTypeId = typeId;
-		fToolId = id;
-		fToolPath = locateExe(exeName);
-	}
-
-	/**
-	 * Locate the given executable by running "which name".
-	 * 
-	 * @param name of executable.
-	 * @param path to executable.
-	 * @return path specifying the location of the executable
-	 * with the given name.  If the executable could not be
-	 * located, returns <b>null</b>.
-	 */
-	protected IPath locateExe(String name) {
-		IOResults ior = execHelper("which", new String[] { name }, null);
-		if (ior.stdout.size() > 0) {
-			return new Path(
-				Filesystem.getNativePath(ior.stdout.toString().trim()));
-		}
-		return null;
-	}
-
-	/**
-	 * Explicity set the path to this tool's executable.
-	 * 
-	 * @param path path to executable.
-	 */
-	protected void setPath(String path) {
-		fToolPath = new Path(path);
-	}
-
-	/**
-	 * Helper method that runs this tool using the provided parameters.
-	 * 
-	 * @param parameters parameters to pass to tool when executing.
-	 * @param workingDir working directory for tool execution.
-	 * @return object IOResults object containing the stdout and stderr
-	 * streams that resulted from running the tool.
-	 */
-	protected IOResults execHelper(String[] parameters, String workingDir) {
-		return execHelper(
-			fToolPath.toString(),
-			parameters,
-			new File(workingDir));
-	}
-
-	/**
-	 * Helper method that runs a specified tool using the provided parameters.
-	 * 
-	 * @param exeName name of executable; may be a simple name or a full path.
-	 * @param parameters parameters to pass to tool when executing.
-	 * @param workingDir working directory for tool execution.
-	 * @return object IOResults object containing the stdout and stderr
-	 * streams that resulted from running the tool.
-	 */
-	protected IOResults execHelper(
-		String exeName,
-		String[] parameters,
-		File dir) {
-		IOResults ior = new IOResults();
-		String[] cmds = new String[parameters.length + 1];
-
-		cmds[0] = exeName;
-		for (int i = 1; i < cmds.length; i++) {
-			cmds[i] = parameters[i - 1];
-		}
-
-		try {
-			ProcessFactory pf = ProcessFactory.getFactory();
-			Process pid = pf.exec(cmds, null, dir);
-			ProcessClosure pc = new ProcessClosure(pid, ior.stdout, ior.stderr);
-			pc.runBlocking();
-		} catch (IOException e) {
-			e.printStackTrace();
-		}
-
-		return ior;
-	}
-
-	/**
-	 * @see org.eclipse.cdt.core.builder.model.ICTool#getTypeId()
-	 */
-	public String getTypeId() {
-		return fTypeId;
-	}
-
-	/**
-	 * @see org.eclipse.cdt.core.builder.model.ICTool#getId()
-	 */
-	public String getId() {
-		return fToolId;
-	}
-
-	/**
-	 * @see org.eclipse.cdt.core.builder.model.ICTool#getPath()
-	 */
-	public IPath getPath() {
-		return (IPath) fToolPath.clone();
-	}
-
-	/**
-	 * @see org.eclipse.cdt.core.builder.model.ICTool#exists()
-	 */
-	public boolean exists() {
-		return fToolPath.toFile().exists();
-	}
-
-	/**
-	 * @see org.eclipse.cdt.core.builder.model.ICTool#exec(String[], String)
-	 */
-	public IOResults exec(String[] parameters, String workingDir) {
-		return execHelper(parameters, workingDir);
-	}
-}
Index: build/org/eclipse/cdt/core/builder/ACToolchainProvider.java
===================================================================
RCS file: build/org/eclipse/cdt/core/builder/ACToolchainProvider.java
diff -N build/org/eclipse/cdt/core/builder/ACToolchainProvider.java
--- build/org/eclipse/cdt/core/builder/ACToolchainProvider.java	17 Feb 2003 19:10:36 -0000	1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,132 +0,0 @@
-/**********************************************************************
- * Copyright (c) 2002,2003 Timesys 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: 
- * Timesys - Initial API and implementation
- **********************************************************************/
-
-package org.eclipse.cdt.core.builder;
-
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.Map;
-
-import org.eclipse.cdt.core.builder.model.ICToolchain;
-import org.eclipse.cdt.core.builder.model.ICToolchainProvider;
-
-/**
- * Abstract base class to make the life of ICToolchainProvider
- * implementers somewhat simpler.
- * <p>
- * Provides default implementations of all methods, such that
- * a basic toolchain can be defined simply by implementing the
- * abstract doRefresh() method.
- * <p>
- * Examples:
- * <p>
- * <code>
- * class CGenericToolchain extends ACToolchainProvider {
- * 	void doRefresh() {
- * 		ICToolchain tc = readToolchainInfoFromFile();
- * 		addToolchain(tc.getId(), tc);
- *	}
- * }
- * </code>
- */
-public abstract class ACToolchainProvider implements ICToolchainProvider {
-
-	/**
-	 * Internal map of toolchain ID to toolchain instances.
-	 */
-	private Map fToolchainMap;
-
-	/**
-	 * Constructor.
-	 * <br>
-	 * Creates a new toolchain map, then calls the abstract
-	 * doRefresh() method to allow derived classes to populate
-	 * the map.
-	 */
-	public ACToolchainProvider() {
-		fToolchainMap = new HashMap();
-		doRefresh();
-	}
-
-	/**
-	 * Determines if a toolchain exists in the internal map of
-	 * toolchain instances.
-	 * 
-	 * @param id toolchain identifier.
-	 * @return true if there is a toolchain instances that corresponds
-	 * to the provided id.
-	 */
-	protected boolean toolchainExists(String id) {
-		return fToolchainMap.containsKey(id);
-	}
-
-	/**
-	 * Add a toolchain to the internal map of toolchain instances.
-	 * 
-	 * @param id toolchain identifier.
-	 * @param tc toolchain instance.
-	 */
-	protected void addToolchain(String id, ICToolchain tc) {
-		fToolchainMap.put(id, tc);
-	}
-
-	/**
-	 * Helper method used to retrieve a toolchain from the internal
-	 * map of toolchain instances.
-	 * 
-	 * @param id toolchain identifier.
-	 * @return toolchain instance, or null if not found.
-	 */
-	protected ICToolchain getToolchainHelper(String id) {
-		ICToolchain tc = null;
-		Object obj = fToolchainMap.get(id);
-		if (obj instanceof ICToolchain) {
-			tc = (ICToolchain) obj;
-		}
-		return tc;
-	}
-
-	/**
-	 * Remove a toolchain from the internal map of toolchain instances.
-	 * 
-	 * @param id toolchain identifier.
-	 * @return true if toolchain is removed.
-	 */
-	protected boolean removeToolchain(String id) {
-		boolean exists = toolchainExists(id);
-		if (exists) {
-			Object obj = fToolchainMap.remove(id);
-			obj = null;
-		}
-		return exists;
-	}
-
-	/**
-	 * @see org.eclipse.cdt.core.builder.model.ICToolchainProvider#getToolchain(String)
-	 */
-	public ICToolchain getToolchain(String id) {
-		return getToolchainHelper(id);
-	}
-
-	/**
-	 * @see org.eclipse.cdt.core.builder.model.ICToolchainProvider#getToolchains()
-	 */
-	public ICToolchain[] getToolchains() {
-		Collection tcc = fToolchainMap.values();
-		return (ICToolchain[]) tcc.toArray(new ICToolchain[tcc.size()]);
-	}
-
-	/**
-	 * Implemented by derived classes. Called whenever the toolchain list needs
-	 * to be refreshed.
-	 */
-	abstract public void doRefresh();
-}
Index: build/org/eclipse/cdt/core/builder/BuilderPlugin.java
===================================================================
RCS file: build/org/eclipse/cdt/core/builder/BuilderPlugin.java
diff -N build/org/eclipse/cdt/core/builder/BuilderPlugin.java
--- build/org/eclipse/cdt/core/builder/BuilderPlugin.java	17 Feb 2003 19:10:36 -0000	1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,247 +0,0 @@
-/**********************************************************************
- * Copyright (c) 2002,2003 Timesys 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: 
- * Timesys - Initial API and implementation
- **********************************************************************/
-
-package org.eclipse.cdt.core.builder;
-
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.Map;
-
-import org.eclipse.cdt.core.CCorePlugin;
-import org.eclipse.cdt.core.builder.internal.CBuildConfigPoint;
-import org.eclipse.cdt.core.builder.internal.CBuildVariablePoint;
-import org.eclipse.cdt.core.builder.internal.CToolPoint;
-import org.eclipse.cdt.core.builder.internal.CToolTypePoint;
-import org.eclipse.cdt.core.builder.internal.CToolchainPoint;
-import org.eclipse.cdt.core.builder.model.ICToolType;
-import org.eclipse.cdt.core.builder.model.internal.CBuildConfigManager;
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.core.runtime.IExtension;
-import org.eclipse.core.runtime.IExtensionPoint;
-import org.eclipse.core.runtime.IPluginDescriptor;
-
-/**
- * Fragments aren't first class citizens in the Eclipse world.
- * This class lets me write code in the experimental builder
- * fragment as if there was a real plugin class that implemented
- * some of these methods.
- * <p>
- * Also - I'm not sure that some of these methods don't belong
- * elsewhere.  Suggestions are welcome.
- */
-public class BuilderPlugin {
-
-	// Pretend this is a real plugin.
-	static private BuilderPlugin thisPlugin;
-
-	// Pretend this is a real plugin.
-	static {
-		thisPlugin = new BuilderPlugin();
-		thisPlugin.loadToolTypes();
-		thisPlugin.loadToolProviders();
-		thisPlugin.loadToolchainProviders();
-		thisPlugin.loadConfigProviders();
-		thisPlugin.loadBuildVarProviders();
-		thisPlugin.dump();
-	}
-
-	// Pretend this is a real plugin.
-	private BuilderPlugin() {
-		fBuildConfigManager = new CBuildConfigManager();
-	}
-
-	// Pretend this is a real plugin.
-	private void dump() {
-		for (Iterator iter = fToolTypes.entrySet().iterator();
-			iter.hasNext();
-			) {
-			ICToolType element =
-				(ICToolType) ((Map.Entry) iter.next()).getValue();
-			System.err.println(
-				"Tool type ("
-					+ element.getName()
-					+ ", "
-					+ element.getId()
-					+ ")");
-		}
-		for (Iterator iter = fToolProviders.entrySet().iterator();
-			iter.hasNext();
-			) {
-			ICToolPoint element =
-				(ICToolPoint) ((Map.Entry) iter.next()).getValue();
-			System.err.println(
-				"Tool ("
-					+ element.getName()
-					+ ", "
-					+ element.getId()
-					+ ", "
-					+ element.getProviderClassName()
-					+ ")");
-		}
-		for (Iterator iter = fToolchainProviders.entrySet().iterator();
-			iter.hasNext();
-			) {
-			ICToolchainPoint element =
-				(ICToolchainPoint) ((Map.Entry) iter.next()).getValue();
-			System.err.println(
-				"Toolchain ("
-					+ element.getId()
-					+ ", "
-					+ element.getProviderClassName()
-					+ ")");
-		}
-		for (Iterator iter = fBuildConfigProviders.entrySet().iterator();
-			iter.hasNext();
-			) {
-			ICBuildConfigPoint element =
-				(ICBuildConfigPoint) ((Map.Entry) iter.next()).getValue();
-			System.err.println(
-				"BuildConfig ("
-					+ element.getName()
-					+ ", "
-					+ element.getId()
-					+ ", "
-					+ element.getProviderClassName()
-					+ ")");
-		}
-		for (Iterator iter = fBuildVarProviders.entrySet().iterator();
-			iter.hasNext();
-			) {
-			ICBuildVariablePoint element =
-				(ICBuildVariablePoint) ((Map.Entry) iter.next()).getValue();
-			System.err.println(
-				"BuildVar ("
-					+ element.getId()
-					+ ", "
-					+ element.getProviderClassName()
-					+ ")");
-		}
-	}
-
-	// Pretend this is a real plugin.
-	static public BuilderPlugin getDefault() {
-		return thisPlugin;
-	}
-
-	// Pretend this is a real plugin.
-	public IPluginDescriptor getDescriptor() {
-		return CCorePlugin.getDefault().getDescriptor();
-	}
-
-	/*
-	 * Data and methods to merge with CCorePlugin 
-	 */
-
-	private CBuildConfigManager fBuildConfigManager;
-	private Map fToolTypes;
-	private Map fToolProviders;
-	private Map fToolchainProviders;
-	private Map fBuildConfigProviders;
-	private Map fBuildVarProviders;
-
-	public CBuildConfigManager getBuildConfigurationManager() {
-		return fBuildConfigManager;
-	}
-
-	public Map getToolTypes() {
-		return fToolTypes;
-	}
-
-	public Map getToolProviders() {
-		return fToolProviders;
-	}
-
-	public Map getToolchainProviders() {
-		return fToolchainProviders;
-	}
-
-	public Map getBuildConfigurationProviders() {
-		return fBuildConfigProviders;
-	}
-
-	public Map getBuildVariableProviders() {
-		return fBuildVarProviders;
-	}
-
-	private void loadToolTypes() {
-		IPluginDescriptor descriptor = getDefault().getDescriptor();
-		IExtensionPoint extensionPoint =
-			descriptor.getExtensionPoint("CToolType");
-		IExtension[] exts = extensionPoint.getExtensions();
-		IConfigurationElement[] infos =
-			extensionPoint.getConfigurationElements();
-		fToolTypes = new HashMap(infos.length);
-		for (int i = 0; i < infos.length; i++) {
-			IConfigurationElement configurationElement = infos[i];
-			CToolTypePoint provider = new CToolTypePoint(configurationElement);
-			fToolTypes.put(provider.getId(), provider);
-		}
-	}
-
-	private void loadToolProviders() {
-		IPluginDescriptor descriptor = getDefault().getDescriptor();
-		IExtensionPoint extensionPoint = descriptor.getExtensionPoint("CTool");
-		IConfigurationElement[] infos =
-			extensionPoint.getConfigurationElements();
-		fToolProviders = new HashMap(infos.length);
-		for (int i = 0; i < infos.length; i++) {
-			IConfigurationElement configurationElement = infos[i];
-			CToolPoint provider = new CToolPoint(configurationElement);
-			fToolProviders.put(provider.getId(), provider);
-		}
-	}
-
-	private void loadToolchainProviders() {
-		IPluginDescriptor descriptor = getDefault().getDescriptor();
-		IExtensionPoint extensionPoint =
-			descriptor.getExtensionPoint("CToolchain");
-		IConfigurationElement[] infos =
-			extensionPoint.getConfigurationElements();
-		fToolchainProviders = new HashMap(infos.length);
-		for (int i = 0; i < infos.length; i++) {
-			IConfigurationElement configurationElement = infos[i];
-			CToolchainPoint provider =
-				new CToolchainPoint(configurationElement);
-			fToolchainProviders.put(provider.getId(), provider);
-		}
-	}
-
-	private void loadConfigProviders() {
-		IPluginDescriptor descriptor = getDefault().getDescriptor();
-		IExtensionPoint extensionPoint =
-			descriptor.getExtensionPoint("CBuildConfig");
-		IConfigurationElement[] infos =
-			extensionPoint.getConfigurationElements();
-		fBuildConfigProviders = new HashMap(infos.length);
-		for (int i = 0; i < infos.length; i++) {
-			IConfigurationElement configurationElement = infos[i];
-			CBuildConfigPoint provider =
-				new CBuildConfigPoint(configurationElement);
-			fBuildConfigProviders.put(provider.getId(), provider);
-		}
-	}
-
-	private void loadBuildVarProviders() {
-		IPluginDescriptor descriptor = getDefault().getDescriptor();
-		IExtensionPoint extensionPoint =
-			descriptor.getExtensionPoint("CBuildVariable");
-		IConfigurationElement[] infos =
-			extensionPoint.getConfigurationElements();
-		fBuildVarProviders = new HashMap(infos.length);
-		for (int i = 0; i < infos.length; i++) {
-			IConfigurationElement configurationElement = infos[i];
-			CBuildVariablePoint provider =
-				new CBuildVariablePoint(configurationElement);
-			fBuildVarProviders.put(provider.getId(), provider);
-		}
-	}
-
-}
Index: build/org/eclipse/cdt/core/builder/ICBuildConfigPoint.java
===================================================================
RCS file: build/org/eclipse/cdt/core/builder/ICBuildConfigPoint.java
diff -N build/org/eclipse/cdt/core/builder/ICBuildConfigPoint.java
--- build/org/eclipse/cdt/core/builder/ICBuildConfigPoint.java	17 Feb 2003 19:10:36 -0000	1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,59 +0,0 @@
-/**********************************************************************
- * Copyright (c) 2002,2003 Timesys 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: 
- * Timesys - Initial API and implementation
- **********************************************************************/
-
-package org.eclipse.cdt.core.builder;
-
-import org.eclipse.cdt.core.builder.model.ICBuildConfigProvider;
-import org.eclipse.core.runtime.CoreException;
-
-/**
- * Interface representing an instance of
- * a CBuildConfig extension point.
- */
-public interface ICBuildConfigPoint {
-
-	/**
-	 * Returns the unique id for the provider.
-	 * 
-	 * @return unique id.
-	 */
-	public String getId();
-
-	/**
-	 * Returns the name of the provider.
-	 * 
-	 * @return provider name.
-	 */
-	public String getName();
-
-	/**
-	 * Returns the natures supported by the provider.
-	 * 
-	 * @return natures supported by the provider.
-	 */
-	public String[] getNatures();
-
-	/**
-	 * Returns the name of the provider's
-	 * implementing class.
-	 * 
-	 * @return name of the provider's implementing class.
-	 */
-	public String getProviderClassName();
-
-	/**
-	 * Returns an instance of the provider's
-	 * implementing class.
-	 * 
-	 * @return instance of ICBuildConfigProvider.
-	 */
-	public ICBuildConfigProvider getProvider() throws CoreException;
-}
Index: build/org/eclipse/cdt/core/builder/ICBuildVariablePoint.java
===================================================================
RCS file: build/org/eclipse/cdt/core/builder/ICBuildVariablePoint.java
diff -N build/org/eclipse/cdt/core/builder/ICBuildVariablePoint.java
--- build/org/eclipse/cdt/core/builder/ICBuildVariablePoint.java	17 Feb 2003 19:10:36 -0000	1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,51 +0,0 @@
-/**********************************************************************
- * Copyright (c) 2002,2003 Timesys 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: 
- * Timesys - Initial API and implementation
- **********************************************************************/
-
-package org.eclipse.cdt.core.builder;
-
-import org.eclipse.cdt.core.builder.model.ICBuildVariableProvider;
-import org.eclipse.core.runtime.CoreException;
-
-/**
- * Interface representing an instance of
- * a CBuildVariable extension point.
- */
-public interface ICBuildVariablePoint {
-	/**
-	 * Returns the unique id for the provider.
-	 * 
-	 * @return unique id.
-	 */
-	public String getId();
-
-	/**
-	 * Returns the the natures supported by the provider.
-	 * 
-	 * @return the natures supported by the provider.
-	 */
-	public String[] getNatures();
-
-	/**
-	 * Returns the name of the provider's
-	 * implementing class.
-	 * 
-	 * @return name of the provider's implementing class.
-	 */
-	public String getProviderClassName();
-
-	/**
-	 * Returns an instance of the provider's
-	 * implementing class.
-	 * 
-	 * @return instance of ICBuildVariableProvider.
-	 */
-	public ICBuildVariableProvider getProvider() throws CoreException;
-}
Index: build/org/eclipse/cdt/core/builder/ICToolPoint.java
===================================================================
RCS file: build/org/eclipse/cdt/core/builder/ICToolPoint.java
diff -N build/org/eclipse/cdt/core/builder/ICToolPoint.java
--- build/org/eclipse/cdt/core/builder/ICToolPoint.java	17 Feb 2003 19:10:36 -0000	1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,59 +0,0 @@
-/**********************************************************************
- * Copyright (c) 2002,2003 Timesys 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: 
- * Timesys - Initial API and implementation
- **********************************************************************/
-
-package org.eclipse.cdt.core.builder;
-
-import org.eclipse.cdt.core.builder.model.ICTool;
-import org.eclipse.core.runtime.CoreException;
-
-/**
- * Interface representing an instance of
- * a CTool extension point.
- */
-public interface ICToolPoint {
-
-	/**
-	 * Returns the unique id for the provider.
-	 * 
-	 * @return unique id.
-	 */
-	public String getId();
-
-	/**
-	 * Returns the name of the provider.
-	 * 
-	 * @return provider name.
-	 */
-	public String getName();
-
-	/**
-	 * Returns the string identifying the type of tool.
-	 * 
-	 * @return type string.
-	 */
-	public String getType();
-
-	/**
-	 * Returns the name of the provider's
-	 * implementing class.
-	 * 
-	 * @return name of the provider's implementing class.
-	 */
-	public String getProviderClassName();
-
-	/**
-	 * Returns an instance of the provider's
-	 * implementing class.
-	 * 
-	 * @return instance of ICToolProvider.
-	 */
-	public ICTool getProvider() throws CoreException;
-}
Index: build/org/eclipse/cdt/core/builder/ICToolTypePoint.java
===================================================================
RCS file: build/org/eclipse/cdt/core/builder/ICToolTypePoint.java
diff -N build/org/eclipse/cdt/core/builder/ICToolTypePoint.java
--- build/org/eclipse/cdt/core/builder/ICToolTypePoint.java	17 Feb 2003 19:10:36 -0000	1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,24 +0,0 @@
-/**********************************************************************
- * Copyright (c) 2002,2003 Timesys 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: 
- * Timesys - Initial API and implementation
- **********************************************************************/
-
-package org.eclipse.cdt.core.builder;
-
-import org.eclipse.cdt.core.builder.model.ICToolType;
-
-/**
- * Interface representing an instance of
- * a CToolType extension point.
- * <p>
- * This interface exists solely to parallel the
- * other extension point interfaces (ICToolPoint, etc.)
- */
-public interface ICToolTypePoint extends ICToolType {
-}
Index: build/org/eclipse/cdt/core/builder/ICToolchainPoint.java
===================================================================
RCS file: build/org/eclipse/cdt/core/builder/ICToolchainPoint.java
diff -N build/org/eclipse/cdt/core/builder/ICToolchainPoint.java
--- build/org/eclipse/cdt/core/builder/ICToolchainPoint.java	17 Feb 2003 19:10:36 -0000	1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,51 +0,0 @@
-/**********************************************************************
- * Copyright (c) 2002,2003 Timesys 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: 
- * Timesys - Initial API and implementation
- **********************************************************************/
-
-package org.eclipse.cdt.core.builder;
-
-import org.eclipse.cdt.core.builder.model.ICToolchainProvider;
-import org.eclipse.core.runtime.CoreException;
-
-/**
- * Interface representing an instance of
- * a CToolchain extension point.
- */
-public interface ICToolchainPoint {
-	/**
-	 * Returns the unique id for the provider.
-	 * 
-	 * @return unique id.
-	 */
-	public String getId();
-
-	/**
-	 * Returns the natures supported by the provider.
-	 * 
-	 * @return natures supported by the provider.
-	 */
-	public String[] getNatures();
-
-	/**
-	 * Returns the name of the provider's
-	 * implementing class.
-	 * 
-	 * @return name of the provider's implementing class.
-	 */
-	public String getProviderClassName();
-
-	/**
-	 * Returns an instance of the provider's
-	 * implementing class.
-	 * 
-	 * @return instance of ICToolchainProvider.
-	 */
-	public ICToolchainProvider getProvider() throws CoreException;
-}
Index: build/org/eclipse/cdt/core/builder/internal/ACExtensionPoint.java
===================================================================
RCS file: build/org/eclipse/cdt/core/builder/internal/ACExtensionPoint.java
diff -N build/org/eclipse/cdt/core/builder/internal/ACExtensionPoint.java
--- build/org/eclipse/cdt/core/builder/internal/ACExtensionPoint.java	17 Feb 2003 19:10:36 -0000	1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,124 +0,0 @@
-/**********************************************************************
- * Copyright (c) 2002,2003 Timesys 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: 
- * Timesys - Initial API and implementation
- **********************************************************************/
-
-package org.eclipse.cdt.core.builder.internal;
-
-import java.util.StringTokenizer;
-import java.util.Vector;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IConfigurationElement;
-
-/**
- * Abstract base class that represents information
- * associated with a declared extension point.
- * <p>
- * Derived classes are expected to implement their
- * own getter functions to return data from the
- * associated IConfigurationElement in a reasonable
- * format.
- */
-public abstract class ACExtensionPoint {
-
-	public final static String FIELD_ID = "id"; //$NON-NLS-1$
-	public final static String FIELD_NAME = "name"; //$NON-NLS-1$
-	public final static String FIELD_TYPE = "name"; //$NON-NLS-1$
-	public final static String FIELD_NATURES = "natures"; //$NON-NLS-1$
-	public final static String FIELD_CLASS = "class"; //$NON-NLS-1$
-
-	/**
-	 * Configuration element associated with this class.
-	 * CONSIDER: is it expensive to hold on to this?
-	 */
-	private IConfigurationElement fElement;
-
-	/**
-	 * Constructor.
-	 * 
-	 * @param element configuration element for the build configuration provider.
-	 */
-	public ACExtensionPoint(IConfigurationElement element) {
-		fElement = element;
-	}
-
-	/**
-	 * Returns the configuration element for the build configuration provider.
-	 * 
-	 * @return configuration element
-	 */
-	protected IConfigurationElement getConfigurationElement() {
-		return fElement;
-	}
-
-	/**
-	 * Breaks up a token-delimited string into individual tokens.
-	 * 
-	 * @param data string to tokenize.
-	 * @param sep delimiter character(s).
-	 * @return array of tokens extracted from the string.
-	 */
-	protected String[] parseField(String data, String sep) {
-		Vector res = new Vector();
-		StringTokenizer st = new StringTokenizer(data, sep);
-		while (st.hasMoreElements()) {
-			res.add(st.nextElement());
-		}
-		return (String[]) res.toArray(new String[res.size()]);
-	}
-
-	/**
-	 * Returns the value of the named field from the configuration element.
-	 * If the named field is not present or has no value, returns an empty
-	 * string.
-	 * 
-	 * @param fieldName name of field.
-	 * @return value of named field, or "".
-	 */
-	protected String getField(String fieldName) {
-		return getField(fieldName, ""); //$NON-NLS-1$
-	}
-
-	/**
-	 * Returns the value of the named field from the configuration element.
-	 * If the named field is not present or has no value, returns the
-	 * specified default value.
-	 * 
-	 * @param fieldName name of field.
-	 * @param defaultValue default value if field not present.
-	 * @return value of named field, or default.
-	 */
-	protected String getField(String fieldName, String defaultValue) {
-		String val = getConfigurationElement().getAttribute(fieldName);
-		return val != null ? val : defaultValue;
-	}
-
-	/**
-	 * Returns an instance of of an implementing class.  This
-	 * method uses the value of the FIELD_CLASS attribute in
-	 * the configuration element to create the class.
-	 * 
-	 * @return instance of provider class.
-	 */
-	protected Object getClassInstance() throws CoreException {
-		return getClassInstance(FIELD_CLASS);
-	}
-
-	/**
-	 * Returns an instance of of an implementing class.
-	 * 
-	 * @param fieldName name of field.
-	 * @return instance of provider class.
-	 */
-	protected Object getClassInstance(String fieldName) throws CoreException {
-		return getConfigurationElement().createExecutableExtension(fieldName);
-	}
-
-}
Index: build/org/eclipse/cdt/core/builder/internal/CBuildConfigPoint.java
===================================================================
RCS file: build/org/eclipse/cdt/core/builder/internal/CBuildConfigPoint.java
diff -N build/org/eclipse/cdt/core/builder/internal/CBuildConfigPoint.java
--- build/org/eclipse/cdt/core/builder/internal/CBuildConfigPoint.java	17 Feb 2003 19:10:36 -0000	1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,70 +0,0 @@
-/**********************************************************************
- * Copyright (c) 2002,2003 Timesys 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: 
- * Timesys - Initial API and implementation
- **********************************************************************/
-
-package org.eclipse.cdt.core.builder.internal;
-
-import org.eclipse.cdt.core.builder.ICBuildConfigPoint;
-import org.eclipse.cdt.core.builder.model.ICBuildConfigProvider;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IConfigurationElement;
-
-/**
- * Simple wrapper for the data associated with an instance of
- * a CBuildConfig extension point.
- */
-public class CBuildConfigPoint
-	extends ACExtensionPoint
-	implements ICBuildConfigPoint {
-
-	/**
-	 * Constructor.
-	 * 
-	 * @param element configuration element for the build configuration provider.
-	 */
-	public CBuildConfigPoint(IConfigurationElement element) {
-		super(element);
-	}
-
-	/**
-	 * @see org.eclipse.cdt.core.builder.ICBuildConfigPoint#getId()
-	 */
-	public String getId() {
-		return getField(FIELD_ID);
-	}
-
-	/**
-	 * @see org.eclipse.cdt.core.builder.ICBuildConfigPoint#getName()
-	 */
-	public String getName() {
-		return getField(FIELD_NAME);
-	}
-
-	/**
-	 * @see org.eclipse.cdt.core.builder.ICBuildConfigPoint#getNatures()
-	 */
-	public String[] getNatures() {
-		return parseField(getField(FIELD_NATURES, "*"), ";"); //$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	/**
-	 * @see org.eclipse.cdt.core.builder.ICBuildConfigPoint#getProviderClassName()
-	 */
-	public String getProviderClassName() {
-		return getField(FIELD_CLASS);
-	}
-
-	/**
-	 * @see org.eclipse.cdt.core.builder.ICBuildConfigPoint#getProvider()
-	 */
-	public ICBuildConfigProvider getProvider() throws CoreException {
-		return (ICBuildConfigProvider) getClassInstance(FIELD_CLASS);
-	}
-}
Index: build/org/eclipse/cdt/core/builder/internal/CBuildVariablePoint.java
===================================================================
RCS file: build/org/eclipse/cdt/core/builder/internal/CBuildVariablePoint.java
diff -N build/org/eclipse/cdt/core/builder/internal/CBuildVariablePoint.java
--- build/org/eclipse/cdt/core/builder/internal/CBuildVariablePoint.java	17 Feb 2003 19:10:36 -0000	1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,64 +0,0 @@
-/**********************************************************************
- * Copyright (c) 2002,2003 Timesys 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: 
- * Timesys - Initial API and implementation
- **********************************************************************/
-
-package org.eclipse.cdt.core.builder.internal;
-
-import org.eclipse.cdt.core.builder.ICBuildVariablePoint;
-import org.eclipse.cdt.core.builder.model.ICBuildVariableProvider;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IConfigurationElement;
-
-/**
- * Simple wrapper for the data associated with an instance of
- * a CBuildVariable extension point.
- */
-
-public class CBuildVariablePoint
-	extends ACExtensionPoint
-	implements ICBuildVariablePoint {
-
-	/**
-	 * Constructor.
-	 * 
-	 * @param element configuration element for the build variable provider.
-	 */
-	public CBuildVariablePoint(IConfigurationElement element) {
-		super(element);
-	}
-
-	/**
-	 * @see org.eclipse.cdt.core.builder.ICBuildVariablePoint#getId()
-	 */
-	public String getId() {
-		return getField(FIELD_ID);
-	}
-
-	/**
-	 * @see org.eclipse.cdt.core.builder.ICBuildVariablePoint#getNatures()
-	 */
-	public String[] getNatures() {
-		return parseField(getField(FIELD_NATURES, "*"), ";"); //$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	/**
-	 * @see org.eclipse.cdt.core.builder.ICBuildVariablePoint#getProviderClassName()
-	 */
-	public String getProviderClassName() {
-		return getField(FIELD_CLASS);
-	}
-
-	/**
-	 * @see org.eclipse.cdt.core.builder.ICBuildVariablePoint#getProvider()
-	 */
-	public ICBuildVariableProvider getProvider() throws CoreException {
-		return (ICBuildVariableProvider) getClassInstance(FIELD_CLASS);
-	}
-}
Index: build/org/eclipse/cdt/core/builder/internal/CToolPoint.java
===================================================================
RCS file: build/org/eclipse/cdt/core/builder/internal/CToolPoint.java
diff -N build/org/eclipse/cdt/core/builder/internal/CToolPoint.java
--- build/org/eclipse/cdt/core/builder/internal/CToolPoint.java	17 Feb 2003 19:10:36 -0000	1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,69 +0,0 @@
-/**********************************************************************
- * Copyright (c) 2002,2003 Timesys 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: 
- * Timesys - Initial API and implementation
- **********************************************************************/
-
-package org.eclipse.cdt.core.builder.internal;
-
-import org.eclipse.cdt.core.builder.ICToolPoint;
-import org.eclipse.cdt.core.builder.model.ICTool;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IConfigurationElement;
-
-/**
- * Simple wrapper for the data associated with an instance of
- * a CTool extension point.
- */
-
-public class CToolPoint extends ACExtensionPoint implements ICToolPoint {
-
-	/**
-	 * Constructor.
-	 * 
-	 * @param element configuration element for the tool type.
-	 */
-	public CToolPoint(IConfigurationElement element) {
-		super(element);
-	}
-
-	/**
-	 * @see org.eclipse.cdt.core.builder.ICToolPoint#getId()
-	 */
-	public String getId() {
-		return getField(FIELD_ID);
-	}
-
-	/**
-	 * @see org.eclipse.cdt.core.builder.ICToolPoint#getName()
-	 */
-	public String getName() {
-		return getField(FIELD_NAME);
-	}
-
-	/**
-	 * @see org.eclipse.cdt.core.builder.ICToolPoint#getType()
-	 */
-	public String getType() {
-		return getField(FIELD_TYPE);
-	}
-
-	/**
-	 * @see org.eclipse.cdt.core.builder.ICToolPoint#getProviderClassName()
-	 */
-	public String getProviderClassName() {
-		return getField(FIELD_CLASS);
-	}
-
-	/**
-	 * @see org.eclipse.cdt.core.builder.ICToolPoint#getProvider()
-	 */
-	public ICTool getProvider() throws CoreException {
-		return (ICTool) getClassInstance(FIELD_CLASS);
-	}
-}
Index: build/org/eclipse/cdt/core/builder/internal/CToolTypePoint.java
===================================================================
RCS file: build/org/eclipse/cdt/core/builder/internal/CToolTypePoint.java
diff -N build/org/eclipse/cdt/core/builder/internal/CToolTypePoint.java
--- build/org/eclipse/cdt/core/builder/internal/CToolTypePoint.java	17 Feb 2003 19:10:36 -0000	1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,48 +0,0 @@
-/**********************************************************************
- * Copyright (c) 2002,2003 Timesys 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: 
- * Timesys - Initial API and implementation
- **********************************************************************/
-
-package org.eclipse.cdt.core.builder.internal;
-
-import org.eclipse.cdt.core.builder.ICToolTypePoint;
-import org.eclipse.core.runtime.IConfigurationElement;
-
-/**
- * Simple wrapper for the data associated with an instance of
- * a CToolType extension point.
- */
-public class CToolTypePoint
-	extends ACExtensionPoint
-	implements ICToolTypePoint {
-
-	/**
-	 * Constructor.
-	 * 
-	 * @param element configuration element for the tool type.
-	 */
-	public CToolTypePoint(IConfigurationElement element) {
-		super(element);
-	}
-
-	/**
-	 * @see org.eclipse.cdt.core.builder.model.ICToolType#getId()
-	 */
-	public String getId() {
-		return getField(FIELD_ID);
-	}
-
-	/**
-	 * @see org.eclipse.cdt.core.builder.model.ICToolType#getName()
-	 */
-	public String getName() {
-		return getField(FIELD_NAME);
-	}
-
-}
Index: build/org/eclipse/cdt/core/builder/internal/CToolchainPoint.java
===================================================================
RCS file: build/org/eclipse/cdt/core/builder/internal/CToolchainPoint.java
diff -N build/org/eclipse/cdt/core/builder/internal/CToolchainPoint.java
--- build/org/eclipse/cdt/core/builder/internal/CToolchainPoint.java	17 Feb 2003 19:10:36 -0000	1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,64 +0,0 @@
-/**********************************************************************
- * Copyright (c) 2002,2003 Timesys 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: 
- * Timesys - Initial API and implementation
- **********************************************************************/
-
-package org.eclipse.cdt.core.builder.internal;
-
-import org.eclipse.cdt.core.builder.ICToolchainPoint;
-import org.eclipse.cdt.core.builder.model.ICToolchainProvider;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IConfigurationElement;
-
-/**
- * Simple wrapper for the data associated with an instance of
- * a CToolchain extension point.
- */
-
-public class CToolchainPoint
-	extends ACExtensionPoint
-	implements ICToolchainPoint {
-
-	/**
-	 * Constructor.
-	 * 
-	 * @param element configuration element for the toolchain provider.
-	 */
-	public CToolchainPoint(IConfigurationElement element) {
-		super(element);
-	}
-
-	/**
-	 * @see org.eclipse.cdt.core.builder.ICToolchainPoint#getId()
-	 */
-	public String getId() {
-		return getField(FIELD_ID);
-	}
-
-	/**
-	 * @see org.eclipse.cdt.core.builder.ICToolchainPoint#getNatures()
-	 */
-	public String[] getNatures() {
-		return parseField(getField(FIELD_NATURES, "*"), ";"); //$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	/**
-	 * @see org.eclipse.cdt.core.builder.ICToolchainPoint#getProviderClassName()
-	 */
-	public String getProviderClassName() {
-		return getField(FIELD_CLASS);
-	}
-
-	/**
-	 * @see org.eclipse.cdt.core.builder.ICToolchainPoint#getProvider()
-	 */
-	public ICToolchainProvider getProvider() throws CoreException {
-		return (ICToolchainProvider) getClassInstance(FIELD_CLASS);
-	}
-}
Index: build/org/eclipse/cdt/core/builder/model/CBuildVariable.java
===================================================================
RCS file: build/org/eclipse/cdt/core/builder/model/CBuildVariable.java
diff -N build/org/eclipse/cdt/core/builder/model/CBuildVariable.java
--- build/org/eclipse/cdt/core/builder/model/CBuildVariable.java	17 Feb 2003 19:10:36 -0000	1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,138 +0,0 @@
-/**********************************************************************
- * Copyright (c) 2002,2003 Timesys 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: 
- * Timesys - Initial API and implementation
- **********************************************************************/
-
-package org.eclipse.cdt.core.builder.model;
-
-/**
- * Default implementation of the ICBuildVariable interface.
- * <p>
- * This implementation is capable of handling both static
- * resolution (where the variable part is fixed at generation
- * time) and dynamic resolution (where the variable part
- * may change over time, depending on context.)
- * <p>
- * @see ICBuildVariable
- * @see ICBuildVariableProvider
- * @see ICBuildVariableResolver
- */
-public class CBuildVariable implements ICBuildVariable {
-
-	private String fFixed;
-	private String fVariable;
-	private ICBuildVariableResolver fResolver;
-
-	/**
-	 * Default implementation of ICBuildVariableResolver that
-	 * simply returns a previously provided string as the
-	 * resolved value for the build variable.
-	 */
-	static private class StringResolver implements ICBuildVariableResolver {
-		private String fValue;
-		
-		public StringResolver(String value) {
-			fValue = value;
-		}
-
-		public String resolveValue(ICBuildVariable var) {
-			return fValue + var.getFixed();
-		}
-	};
-
-	/**
-	 * Create a new build variable with the given variable
-	 * and fixed elements, and a static resolver that always
-	 * returns the same value for the variable portion of
-	 * the variable.
-	 * 
-	 * @param name 	variable portion of build variable.
-	 * @param fixed	fixed portion of build variable.
-	 * @param resolved	resolved variable value.
-	 */
-	public CBuildVariable(String name, String fixed, String resolved) {
-		this(name, fixed, new StringResolver(resolved));
-	}
-
-	/**
-	 * Create a new build variable with the given fixed
-	 * and variable values, and a dynamic resolver for
-	 * the variable portion of the variable.
-	 * 
-	 * @param name 	variable portion of build variable.
-	 * @param fixed	fixed portion of build variable.
-	 * @param resolved	resolved variable value.
-	 */
-	public CBuildVariable(String name, String fixed, ICBuildVariableResolver resolver) {
-		fVariable = name;
-		fFixed = fixed;
-		fResolver = resolver;
-	}
-
-	/**
-	 * Create a new build variable with the given fixed
-	 * and variable values, and a dynamic resolver for
-	 * the variable portion of the variable.
-	 * 
-	 * @param name 	variable portion of build variable.
-	 * @param fixed	fixed portion of build variable.
-	 * @param resolved	resolved variable value.
-	 */
-	public CBuildVariable(String name, ICBuildVariable base) {
-		fVariable = name;
-		fFixed = base.getFixed();
-		fResolver = base.getResolver();
-	}
-
-	/**
-	 * @see org.eclipse.cdt.core.builder.model.ICBuildVariable#getVariable()
-	 */
-	public String getVariable() {
-		return fVariable;
-	}
-
-	/**
-	 * @see org.eclipse.cdt.core.builder.model.ICBuildVariable#getFixed()
-	 */
-	public String getFixed() {
-		return fFixed;
-	}
-
-	/**
-	 * @see org.eclipse.cdt.core.builder.model.ICBuildVariable#getResolver()
-	 */
-	public ICBuildVariableResolver getResolver() {
-		return fResolver;
-	}
-
-	/**
-	 * @see org.eclipse.cdt.core.builder.model.ICBuildVariable#getValue()
-	 */
-	public String getValue() {
-		return fResolver.resolveValue(this);
-	}
-
-	/* (non-Javadoc)
-	 * @see java.lang.Object#hashCode()
-	 */
-	public int hashCode() {
-		int result = 17;
-		result = (result * 37) + fVariable.hashCode();
-		result = (result * 37) + fFixed.hashCode();
-		return result;
-	}
-
-	/* (non-Javadoc)
-	 * @see java.lang.Object#toString()
-	 */
-	public String toString() {
-		return "[" + fVariable + "]" + fFixed;
-	}
-
-}
Index: build/org/eclipse/cdt/core/builder/model/ICBuildCmd.java
===================================================================
RCS file: build/org/eclipse/cdt/core/builder/model/ICBuildCmd.java
diff -N build/org/eclipse/cdt/core/builder/model/ICBuildCmd.java
--- build/org/eclipse/cdt/core/builder/model/ICBuildCmd.java	17 Feb 2003 19:10:36 -0000	1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,50 +0,0 @@
-/**********************************************************************
- * Copyright (c) 2002,2003 Timesys 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: 
- * Timesys - Initial API and implementation
- **********************************************************************/
-
-package org.eclipse.cdt.core.builder.model;
-
-import org.eclipse.core.resources.IFile;
-
-/**
- * A build command is generated by a tool or toolchain, and
- * represents a command that must be executed in order to
- * build a file.
- */
-public interface ICBuildCmd {
-
-	/**
-	 * Tool used to process the file.
-	 * 
-	 * @return tool used to build this file.
-	 */
-	ICTool getTool();
-
-	/**
-	 * File this build command applies to.
-	 * 
-	 * @return file this build command applies to.
-	 */
-	IFile getFile();
-
-	/**
-	 * Parameters that are to be passed to the tool
-	 * when building the file.
-	 * 
-	 * @return parameters used to build the file.
-	 */
-	String[] getParameters();
-
-	/**
-	 * This is a convenience method that should
-	 * simply call getTool().exec(getParameters(), workingDir);
-	 */
-	boolean exec(String workingDir);
-}
Index: build/org/eclipse/cdt/core/builder/model/ICBuildCmdProcessor.java
===================================================================
RCS file: build/org/eclipse/cdt/core/builder/model/ICBuildCmdProcessor.java
diff -N build/org/eclipse/cdt/core/builder/model/ICBuildCmdProcessor.java
--- build/org/eclipse/cdt/core/builder/model/ICBuildCmdProcessor.java	17 Feb 2003 19:10:36 -0000	1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,37 +0,0 @@
-/**********************************************************************
- * Copyright (c) 2002,2003 Timesys 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: 
- * Timesys - Initial API and implementation
- **********************************************************************/
-
-package org.eclipse.cdt.core.builder.model;
-
-/**
- * Consumer of build commands.
- * <br>
- * "Processing" a build command might mean different
- * things for different types of processors (ex,
- * an incremental build processor and a makefile
- * generator.)
- * <br>
- * @see ICBuildCmd
- */
-public interface ICBuildCmdProcessor {
-
-	/**
-	 * Process the provided build commands.  This
-	 * might me executing the associated tool, recording
-	 * the build command in a file, handing the command
-	 * off to a remote processor for execution on another
-	 * machine, etc.
-	 * 
-	 * @param cmds build commands to process.
-	 */
-	void processCommands(ICBuildCmd[] cmds);
-
-}
Index: build/org/eclipse/cdt/core/builder/model/ICBuildConfig.java
===================================================================
RCS file: build/org/eclipse/cdt/core/builder/model/ICBuildConfig.java
diff -N build/org/eclipse/cdt/core/builder/model/ICBuildConfig.java
--- build/org/eclipse/cdt/core/builder/model/ICBuildConfig.java	17 Feb 2003 19:10:36 -0000	1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,306 +0,0 @@
-/**********************************************************************
- * Copyright (c) 2002,2003 Timesys 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: 
- * Based on org.eclipse.debug.core.ILaunchConfiguration
- * Timesys - Initial API and implementation
- **********************************************************************/
-
-package org.eclipse.cdt.core.builder.model;
-
-import java.util.List;
-import java.util.Map;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IProgressMonitor;
-
-/**
- * A build configuration describes how to build a project.  It
- * is a collection of the various tool- and toolchain-specific
- * settings used to process the files in a project and produce
- * some end result.
- * <p>
- * A build configuration may be shared in a repository via
- * standard VCM mechanisms.
- * <p>
- * A build configuration is a handle to its underlying storage.
- * <p>
- * A build configuration is modified by obtaining a working copy
- * of a build configuration, modifying the working copy, and then
- * saving the working copy.
- * <p>
- * This interface is not intended to be implemented by clients.
- * <p>
- * @see ICBuildConfigWorkingCopy
- */
-public interface ICBuildConfig extends IAdaptable {
-
-	/*
-	 * TBD: add convenience methods for accessing standard elements?
-	 * 
-	 * String[] getIncludePaths();
-	 * String[] getLibPaths();
-	 * String[] getLibs();
-	 * String[] getOptimizationFlags();
-	 * String[] getDebugFlags();
-	 * String[] getWarningFlags();
-	 */
-
-	/**
-	 * The file extension for build configuration files
-	 * (value <code>"config"</code>).
-	 * <p>
-	 * CONSIDER: perhaps better to have a ".cdtconfig" file containing
-	 * all build configuratons for the project in one spot?
-	 */
-	public static final String BUILD_CONFIGURATION_FILE_EXTENSION = "build"; //$NON-NLS-1$
-
-	/**
-	 * Configuration version.  Text string.
-	 */
-	public final static String CONFIG_VERSION = "config.version";
-
-	/**
-	 * Configuration name.  Text string.
-	 */
-	public final static String CONFIG_NAME = "config.name";
-
-	/**
-	 * Builds this configuration.
-	 * 
-	 * @param monitor progress monitor, or <code>null</code>
-	 */
-	public void build(IProgressMonitor monitor) throws CoreException;
-
-	/**
-	 * Returns the name of this build configuration.
-	 * 
-	 * @return the name of this build configuration
-	 */
-	public String getName();
-
-	/**
-	 * Returns the location of this build configuration as a
-	 * path.
-	 * 
-	 * @return the location of this build configuration as a
-	 *  path
-	 */
-	public IPath getLocation();
-
-	/**
-	 * Returns whether this build configuration's underlying
-	 * storage exists.
-	 * 
-	 * @return whether this build configuration's underlying
-	 *  storage exists
-	 */
-	public boolean exists();
-
-	/**
-	 * Returns the integer-valued attribute with the given name.  
-	 * Returns the given default value if the attribute is undefined.
-	 *
-	 * @param attributeName the name of the attribute
-	 * @param defaultValue the value to use if no value is found
-	 * @return the value or the default value if no value was found.
-	 * @exception CoreException if this method fails. Reasons include:
-	 * <ul>
-	 * <li>An exception occurs while retrieving the attribute from
-	 *  underlying storage.</li>
-	 * <li>An attribute with the given name exists, but does not
-	 *  have an integer value</li>
-	 * </ul>
-	 */
-	public int getAttribute(String attributeName, int defaultValue)
-		throws CoreException;
-
-	/**
-	 * Returns the string-valued attribute with the given name.  
-	 * Returns the given default value if the attribute is undefined.
-	 *
-	 * @param attributeName the name of the attribute
-	 * @param defaultValue the value to use if no value is found
-	 * @return the value or the default value if no value was found.
-	 * @exception CoreException if this method fails. Reasons include:
-	 * <ul>
-	 * <li>An exception occurs while retrieving the attribute from
-	 *  underlying storage.</li>
-	 * <li>An attribute with the given name exists, but does not
-	 *  have a String value</li>
-	 * </ul>
-	 */
-	public String getAttribute(String attributeName, String defaultValue)
-		throws CoreException;
-
-	/**
-	 * Returns the boolean-valued attribute with the given name.  
-	 * Returns the given default value if the attribute is undefined.
-	 *
-	 * @param attributeName the name of the attribute
-	 * @param defaultValue the value to use if no value is found
-	 * @return the value or the default value if no value was found.
-	 * @exception CoreException if this method fails. Reasons include:
-	 * <ul>
-	 * <li>An exception occurs while retrieving the attribute from
-	 *  underlying storage.</li>
-	 * <li>An attribute with the given name exists, but does not
-	 *  have a boolean value</li>
-	 * </ul>
-	 */
-	public boolean getAttribute(String attributeName, boolean defaultValue)
-		throws CoreException;
-
-	/**
-	 * Returns the <code>java.util.List</code>-valued attribute with the given name.  
-	 * Returns the given default value if the attribute is undefined.
-	 *
-	 * @param attributeName the name of the attribute
-	 * @param defaultValue the value to use if no value is found
-	 * @return the value or the default value if no value was found.
-	 * @exception CoreException if this method fails. Reasons include:
-	 * <ul>
-	 * <li>An exception occurs while retrieving the attribute from
-	 *  underlying storage.</li>
-	 * <li>An attribute with the given name exists, but does not
-	 *  have a List value</li>
-	 * </ul>
-	 */
-	public List getAttribute(String attributeName, List defaultValue)
-		throws CoreException;
-
-	/**
-	 * Returns the <code>java.util.Map</code>-valued attribute with the given name.  
-	 * Returns the given default value if the attribute is undefined.
-	 *
-	 * @param attributeName the name of the attribute
-	 * @param defaultValue the value to use if no value is found
-	 * @return the value or the default value if no value was found.
-	 * @exception CoreException if this method fails. Reasons include:
-	 * <ul>
-	 * <li>An exception occurs while retrieving the attribute from
-	 *  underlying storage.</li>
-	 * <li>An attribute with the given name exists, but does not
-	 *  have a Map value</li>
-	 * </ul>
-	 */
-	public Map getAttribute(String attributeName, Map defaultValue)
-		throws CoreException;
-
-	/**
-	 * Returns the file this build configuration is stored
-	 * in, or <code>null</code> if this configuration is stored
-	 * locally with the workspace.
-	 * 
-	 * @return the file this build configuration is stored
-	 *  in, or <code>null</code> if this configuration is stored
-	 *  locally with the workspace
-	 */
-	public IFile getFile();
-
-	/**
-	 * Returns the project this build configuration is stored
-	 * in.
-	 * 
-	 * @return the file this build configuration is stored in.
-	 */
-	public IProject getProject();
-
-	/**
-	 * Returns whether this build configuration is stored
-	 * locally with the workspace.
-	 * 
-	 * @return whether this build configuration is stored
-	 *  locally with the workspace
-	 */
-	public boolean isLocal();
-
-	/**
-	 * Returns a working copy of this build configuration.
-	 * Changes to the working copy will be applied to this
-	 * build configuration when saved. The working copy will
-	 * refer to this build configuration as its original
-	 * build configuration.
-	 * 
-	 * @return a working copy of this build configuration
-	 * @exception CoreException if this method fails. Reasons include:
-	 * <ul>
-	 * <li>An exception occurs while initializing the contents of the
-	 * working copy from this configuration's underlying storage.</li>
-	 * </ul>
-	 * @see ICBuildConfigWorkingCopy#getOriginal()
-	 */
-	public ICBuildConfigWorkingCopy getWorkingCopy() throws CoreException;
-
-	/**
-	 * Returns a copy of this build configuration, as a
-	 * working copy, with the specified name. The new
-	 * working copy does not refer back to this configuration
-	 * as its original build configuration (the working copy
-	 * will return <code>null</code> for <code>getOriginal()</code>).
-	 * When the working copy is saved it will not effect this
-	 * build configuration.
-	 * 
-	 * @param name the name of the copy
-	 * @return a copy of this build configuration
-	 * @exception CoreException if this method fails. Reasons include:
-	 * <ul>
-	 * <li>An exception occurs while initializing the contents of the
-	 * working copy from this configuration's underlying storage.</li>
-	 * </ul>
-	 * @see ICBuildConfigWorkingCopy#getOriginal()
-	 */
-	public ICBuildConfigWorkingCopy copy(String name) throws CoreException;
-
-	/**
-	 * Returns whether this build configuration is a working
-	 * copy.
-	 * 
-	 * @return whether this build configuration is a working
-	 *  copy
-	 */
-	public boolean isWorkingCopy();
-
-	/**
-	 * Deletes this build configuration. This configuration's underlying
-	 * storage is deleted. Has no effect if this configuration
-	 * does not exist.
-	 * 
-	 * @exception CoreException if this method fails. Reasons include:
-	 * <ul>
-	 * <li>An exception occurs while deleting this configuration's
-	 *  underlying storage.</li>
-	 * </ul>
-	 */
-	public void delete() throws CoreException;
-
-	/**
-	 * Returns a memento for this build configuration, or <code>null</code>
-	 * if unable to generate a memento for this configuration. A memento
-	 * can be used to re-create a build configuration, via the
-	 * build manager.
-	 * 
-	 * @return a memento for this configuration
-	 * @see ICBuildConfigManager#getConfiguration(IProject, String)
-	 * @exception CoreException if an exception occurs generating this
-	 *  build configuration's memento 
-	 */
-	public String getMemento() throws CoreException;
-
-	/**
-	 * Returns whether the contents of this build configuration are 
-	 * equal to the contents of the given build configuration.
-	 * 
-	 * @return whether the contents of this build configuration are equal to the contents
-	 * of the specified build configuration.
-	 */
-	public boolean contentsEqual(ICBuildConfig configuration);
-}
Index: build/org/eclipse/cdt/core/builder/model/ICBuildConfigListener.java
===================================================================
RCS file: build/org/eclipse/cdt/core/builder/model/ICBuildConfigListener.java
diff -N build/org/eclipse/cdt/core/builder/model/ICBuildConfigListener.java
--- build/org/eclipse/cdt/core/builder/model/ICBuildConfigListener.java	17 Feb 2003 19:10:36 -0000	1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,47 +0,0 @@
-/**********************************************************************
- * Copyright (c) 2002,2003 Timesys 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: 
- * Based on org.eclipse.debug.core.ILaunchConfigurationListener
- * Timesys - Initial API and implementation
- **********************************************************************/
-
-package org.eclipse.cdt.core.builder.model;
-
-/**
- * A build configuration listener is notified of build
- * configurations as they are added and removed from the
- * build configuration manager.
- * <p>
- * Clients may implement this interface.
- */
-public interface ICBuildConfigListener {
-
-	/**
-	 * Notifies this listener that the specified
-	 * configuration has been removed.
-	 *
-	 * @param configuration the removed configuration
-	 */
-	public void configurationRemoved(ICBuildConfig configuration);
-
-	/**
-	 * Notifies this listener that the specified configuration
-	 * has been added.
-	 * 
-	 * @param configuration the newly added configuration
-	 */
-	public void configurationAdded(ICBuildConfig configuration);
-
-	/**
-	 * Notifies this listener that the specified configuration
-	 * has changed.
-	 * 
-	 * @param configuration the changed configuration
-	 */
-	public void configurationChanged(ICBuildConfig configuration);
-}
Index: build/org/eclipse/cdt/core/builder/model/ICBuildConfigManager.java
===================================================================
RCS file: build/org/eclipse/cdt/core/builder/model/ICBuildConfigManager.java
diff -N build/org/eclipse/cdt/core/builder/model/ICBuildConfigManager.java
--- build/org/eclipse/cdt/core/builder/model/ICBuildConfigManager.java	17 Feb 2003 19:10:36 -0000	1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,125 +0,0 @@
-/**********************************************************************
- * Copyright (c) 2002,2003 Timesys 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: 
- * Based on org.eclipse.debug.internal.ui.launchConfigurations.LaunchConfigurationManager
- * Timesys - Initial API and implementation
- **********************************************************************/
-
-package org.eclipse.cdt.core.builder.model;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.runtime.CoreException;
-
-/**
- * The build configuration manager manages the set of registered build
- * configurations. Clients interested in build configuration change
- * notification may register with the build configuration manager.
- * <p>
- * Clients are not intended to implement this interface.
- * </p>
- * @see ICBuildConfigListener
- */
-public interface ICBuildConfigManager {
-	
-	/**
-	 * Adds the given listener to the collection of registered
-	 * configuration listeners. Has no effect if an identical
-	 * listener is already registerd.
-	 *
-	 * @param listener the listener to register
-	 */
-	public void addListener(ICBuildConfigListener listener);
-
-	/**
-	 * Removes the given listener from the collection of registered
-	 * configuration listeners.  Has no effect if an identical listener
-	 * is not already registerd.
-	 *
-	 * @param listener the listener to deregister
-	 */
-	public void removeListener(ICBuildConfigListener listener);
-
-	/**
-	 * Adds the specified configuration and notifies listeners. Has no
-	 * effect if an identical configuration is already registered.
-	 * 
-	 * @param configuration the configuration to add
-	 */
-	public void addConfiguration(ICBuildConfig configuration);	
-
-	/**
-	 * Removes the specified configuration and notifies listeners.
-	 * Has no effect if an identical configuration is not already
-	 * registered.
-	 *
-	 * @param configuration the configuration to remove
-	 * @since 2.0
-	 */
-	public void removeConfiguration(ICBuildConfig configuration);
-	
-	/**
-	 * Returns all build configurations associated with a project.
-	 * Returns an zero-length array if no configurations are associated
-	 * with the project.
-	 * 
-	 * @param project project to retrieve build configurations for.
-	 * @return all build configurations of the specified type for the project.
-	 * @exception CoreException if an error occurs while retreiving a build configuration
-	 */
-	public ICBuildConfig[] getConfigurations(IProject project) throws CoreException;
-	
-	/**
-	 * Returns a handle to the configuration contained in the specified
-	 * file. The file is not verified to exist or contain a proper
-	 * configuration.
-	 * 
-	 * @param file configuration file
-	 * @return a handle to the configuration contained in the specified file
-	 */
-	public ICBuildConfig getConfiguration(IFile file);
-	
-	/**
-	 * Returns a handle to the configuration specified by the given
-	 * memento. The configuration may not exist.
-	 * 
-	 * @return a handle to the configuration specified by the given memento
-	 * @exception CoreException if the given memento is invalid or
-	 *  an exception occurs parsing the memento
-	 */
-	public ICBuildConfig getConfiguration(String memento) throws CoreException;
-
-	/**
-	 * Returns a handle to a newly created build configuration.
-	 * 
-	 * @param name Name of new configuration.
-	 * @return a handle to a new configuration instance.
-	 */
-	public ICBuildConfigWorkingCopy getConfiguration(IProject project, String name);
-	
-	/**
-	 * Return <code>true</code> if there is a configuration with the specified name, 
-	 * <code>false</code> otherwise.
-	 * 
-	 * @param name the name of the configuration whose existence is being checked
-	 * @exception CoreException if unable to retrieve existing configuration names
-	 */
-	public boolean isExistingConfigurationName(IProject project, String name) throws CoreException;
-
-	/**
-	 * Return a String that can be used as the name of a configuration.  The name
-	 * is guaranteed to be unique (no existing configurations will have this name).
-	 * The name that is returned uses the <code>namePrefix</code> as a starting point.
-	 * If there is no existing configuration with this name, then <code>namePrefix</code>
-	 * is returned.  Otherwise, the value returned consists of the specified prefix plus
-	 * some suffix that guarantees uniqueness.
-	 * 
-	 * @param namePrefix the String that the returned name must begin with
-	 */
-	public String generateUniqueConfigurationNameFrom(IProject project, String namePrefix);
-}
Index: build/org/eclipse/cdt/core/builder/model/ICBuildConfigProvider.java
===================================================================
RCS file: build/org/eclipse/cdt/core/builder/model/ICBuildConfigProvider.java
diff -N build/org/eclipse/cdt/core/builder/model/ICBuildConfigProvider.java
--- build/org/eclipse/cdt/core/builder/model/ICBuildConfigProvider.java	17 Feb 2003 19:10:36 -0000	1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,34 +0,0 @@
-/**********************************************************************
- * Copyright (c) 2002,2003 Timesys 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: 
- * Timesys - Initial API and implementation
- **********************************************************************/
-
-package org.eclipse.cdt.core.builder.model;
-
-/**
- * ICBuildConfigProvider represents an instance of a class
- * that initializes an empty build configuration with
- * reasonable default values.
- * <p>
- * The intent is to decouple build configuration creation
- * and initialization.
- * <p>
- * See also the <a href="../../../../../../CBuildConfig.html">CBuildConfig</a>
- * extension point documentation.
- */
-public interface ICBuildConfigProvider {
-
-	/**
-	 * Set initial values in the provided build configuration
-	 * working copy.
-	 * 
-	 * @param config build configuration to initialize.
-	 */
-	public void setDefaults(ICBuildConfigWorkingCopy config);
-}
Index: build/org/eclipse/cdt/core/builder/model/ICBuildConfigWorkingCopy.java
===================================================================
RCS file: build/org/eclipse/cdt/core/builder/model/ICBuildConfigWorkingCopy.java
diff -N build/org/eclipse/cdt/core/builder/model/ICBuildConfigWorkingCopy.java
--- build/org/eclipse/cdt/core/builder/model/ICBuildConfigWorkingCopy.java	17 Feb 2003 19:10:36 -0000	1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,142 +0,0 @@
-/**********************************************************************
- * Copyright (c) 2002,2003 Timesys 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: 
- * Timesys - Initial API and implementation
- **********************************************************************/
-
-package org.eclipse.cdt.core.builder.model;
-
-import java.util.List;
-import java.util.Map;
-
-import org.eclipse.core.resources.IContainer;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IAdaptable;
-
-/**
- * An editable copy of a build configuration. Attributes of a
- * build configuration are modified by modifying the attributes
- * of a working copy, and then saving the working copy.
- * <p>
- * This interface is not intended to be implemented by clients.
- * <p>
- * @see ICBuildConfig
- */
-public interface ICBuildConfigWorkingCopy extends ICBuildConfig, IAdaptable {
-
-	/**
-	 * Returns whether this configuration has been modified
-	 * since it was last saved or created.
-	 * 
-	 * @return whether this configuration has been modified
-	 *  since it was last saved or created
-	 */
-	public boolean isDirty();
-
-	/**
-	 * Saves this working copy to its underlying file and returns
-	 * a handle to the resulting launch configuration.
-	 * Has no effect if this configuration does not need saving.
-	 * Creates the underlying file if not yet created.
-	 * 
-	 * @exception CoreException if an exception occurs while 
-	 *  writing this configuration to its underlying file.
-	 */
-	public ICBuildConfig doSave() throws CoreException;
-
-	/**
-	 * Sets the integer-valued attribute with the given name.  
-	 *
-	 * @param attributeName the name of the attribute
-	 * @param value the value
-	 */
-	public void setAttribute(String attributeName, int value);
-
-	/**
-	 * Sets the String-valued attribute with the given name.
-	 * If the value is <code>null</code>, the attribute is removed from
-	 * this launch configuration.
-	 *
-	 * @param attributeName the name of the attribute
-	 * @param value the value, or <code>null</code> if the attribute is to be undefined
-	 */
-	public void setAttribute(String attributeName, String value);
-
-	/**
-	 * Sets the <code>java.util.List</code>-valued attribute with the given name.
-	 * The specified List <em>must</em> contain only String-valued entries.
-	 * If the value is <code>null</code>, the attribute is removed from
-	 * this launch configuration.
-	 *
-	 * @param attributeName the name of the attribute
-	 * @param value the value, or <code>null</code> if the attribute is to be undefined
-	 */
-	public void setAttribute(String attributeName, List value);
-
-	/**
-	 * Sets the <code>java.util.Map</code>-valued attribute with the given name.
-	 * The specified Map <em>must</em> contain only String keys and String values.
-	 * If the value is <code>null</code>, the attribute is removed from
-	 * this launch configuration.
-	 *
-	 * @param attributeName the name of the attribute
-	 * @param value the value, or <code>null</code> if the attribute is to be undefined
-	 */
-	public void setAttribute(String attributeName, Map value);
-
-	/**
-	 * Sets the boolean-valued attribute with the given name.  
-	 *
-	 * @param attributeName the name of the attribute
-	 * @param value the value
-	 */
-	public void setAttribute(String attributeName, boolean value);
-
-	/**
-	 * Returns the original launch configuration this working copy
-	 * was created from, or <code>null</code> if this is a new
-	 * working copy created from a launch configuration type.
-	 * 
-	 * @return the original launch configuration, or <code>null</code>
-	 */
-	public ICBuildConfig getOriginal();
-
-	/**
-	 * Renames this build configuration to the specified name.
-	 * The new name cannot be <code>null</code>. Has no effect if the name
-	 * is the same as the current name. If this working copy is based
-	 * on an existing build configuration, this will cause
-	 * the underlying build configuration file to be renamed when
-	 * this working copy is saved.
-	 * 
-	 * @param name the new name for this configuration 
-	 */
-	public void rename(String name);
-
-	/**
-	 * Sets the container this build configuration will be stored
-	 * in when saved. When set to <code>null</code>, this configuration
-	 * will be stored locally with the workspace. The specified
-	 * container must exist, if specified.
-	 * <p>
-	 * If this configuration is changed from local to non-local,
-	 * a file will be created in the specified container when
-	 * saved. The local file associated with this configuration
-	 * will be deleted.
-	 * <p>
-	 * If this configuration is changed from non-local to local,
-	 * a file will be created locally when saved.
-	 * The original file associated with this configuration in
-	 * the workspace will be deleted.
-	 * <p>
-	 * @param container the container in which to store this
-	 *  build configuration, or <code>null</code> if this
-	 *  configuration is to be stored locally
-	 */
-	public void setContainer(IContainer container);
-}
Index: build/org/eclipse/cdt/core/builder/model/ICBuildVariable.java
===================================================================
RCS file: build/org/eclipse/cdt/core/builder/model/ICBuildVariable.java
diff -N build/org/eclipse/cdt/core/builder/model/ICBuildVariable.java
--- build/org/eclipse/cdt/core/builder/model/ICBuildVariable.java	17 Feb 2003 19:10:36 -0000	1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,73 +0,0 @@
-/**********************************************************************
- * Copyright (c) 2002,2003 Timesys 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: 
- * Timesys - Initial API and implementation
- **********************************************************************/
-
-package org.eclipse.cdt.core.builder.model;
-
-/**
- * Represents a named value that is used as a variable
- * within the build process.  Build variables represent
- * a variable prefix coupled with an optional static suffix.
- * Using Makefile syntax as an example, the following is
- * an examples of build variables:
- * <p>
- * <code>
- * $(CROSS_TOOLS)/include
- * </code>
- * <p>
- * For this particular build variable:
- * <ul>
- * <li>Calling <code>getVariable()</code> would return "CROSS_TOOLS"</li>
- * <li>Calling <code>getFixed()</code> would return "/include"</li>
- * <li>Calling <code>getValue()</code> would return the current value
- * of the variable.</li>
- * </ul>
- * <p>
- * The intent is to introduce a mechanism similar to that
- * used by the Eclipse IDE to handle ClassPath variables.
- * <p>
- * @see ICBuildVariableProvider
- * @see ICBuildVariableResolver
- * @see CBuildVariable
- */
-public interface ICBuildVariable {
-
-	/**
-	 * Get the text that makes up the variable portion
-	 * of this build variable.
-	 * 
-	 * @return variable portion of this build variable.
-	 */
-	String getVariable();
-
-	/**
-	 * Get the text that makes up the fixed portion
-	 * of this build variable.
-	 * 
-	 * @return fixed portion of this build variable.
-	 */
-	String getFixed();
-
-	/**
-	 * Get the current value of this build variable,
-	 * replacing the variable portion with whatever
-	 * value is appropriate for teh current circumstances.
-	 * 
-	 * @return Value of this build variable.
-	 */
-	String getValue();
-	
-	/**
-	 * Get the resolver for this build variable,
-	 * 
-	 * @return Resolver for this build variable.
-	 */
-	ICBuildVariableResolver getResolver();	
-}
Index: build/org/eclipse/cdt/core/builder/model/ICBuildVariableProvider.java
===================================================================
RCS file: build/org/eclipse/cdt/core/builder/model/ICBuildVariableProvider.java
diff -N build/org/eclipse/cdt/core/builder/model/ICBuildVariableProvider.java
--- build/org/eclipse/cdt/core/builder/model/ICBuildVariableProvider.java	17 Feb 2003 19:10:36 -0000	1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,54 +0,0 @@
-/**********************************************************************
- * Copyright (c) 2002,2003 Timesys 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: 
- * Timesys - Initial API and implementation
- **********************************************************************/
-
-package org.eclipse.cdt.core.builder.model;
-
-/**
- * Class that makes build variables available to the
- * build process.
- * <p>
- * Intended for use in situations where generic build
- * variables (ex, system root, etc.) can be provided
- * for particular project types, or generically.
- * <p>
- * If possible the build variable provider should create
- * a build variable that does not need to refer back to
- * the provider for resolution. The default CBuildVariable
- * implementation provides support for this type of
- * build variable.
- * </p>
- * If the build variable will need information from the
- * provider in order to resolve it's value, then the
- * build variables will need to keep a reference to it's
- * provider (or some other class that can resolve the
- * variable protion of the build variable.)  The default
- * CBuildVariable implementation supports this type
- * of build variable as well, through use of the 
- * ICBuildVariableResolver interface.
- * <p>
- * See also the <a href="../../../../../../CBuildConfig.html">CBuildConfig</a>
- * extension point documentation.
- * <p>
- * @see ICBuildVariable
- * @see ICBuildVariableResolver
- * @see CBuildVariable
- */
-public interface ICBuildVariableProvider {
-
-	/**
-	 * Get the list of build variables made available
-	 * through this provider.
-	 * 
-	 * @return build variables.
-	 */
-	ICBuildVariable[] getVariables();
-
-}
Index: build/org/eclipse/cdt/core/builder/model/ICBuildVariableResolver.java
===================================================================
RCS file: build/org/eclipse/cdt/core/builder/model/ICBuildVariableResolver.java
diff -N build/org/eclipse/cdt/core/builder/model/ICBuildVariableResolver.java
--- build/org/eclipse/cdt/core/builder/model/ICBuildVariableResolver.java	17 Feb 2003 19:10:36 -0000	1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,37 +0,0 @@
-/**********************************************************************
- * Copyright (c) 2002,2003 Timesys 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: 
- * Timesys - Initial API and implementation
- **********************************************************************/
-
-package org.eclipse.cdt.core.builder.model;
-
-/**
- * Interface representing a class that is capable of
- * resolving the variable portion of build variables
- * at run time.
- * <p>
- * See also the <a href="../../../../../../CBuildConfig.html">CBuildConfig</a>
- * extension point documentation.
- * <p>
- * @see ICBuildVariable
- * @see ICBuildVariableProvider
- * @see CBuildVariable
- */
-
-public interface ICBuildVariableResolver {
-	
-	/**
-	 * Given a build variable, determine what it's
-	 * resolved value should be.
-	 * 
-	 * @return resolved value, or <code>null</code>.
-	 */
-	public String resolveValue(ICBuildVariable var);
-
-}
Index: build/org/eclipse/cdt/core/builder/model/ICPosixBuildConstants.java
===================================================================
RCS file: build/org/eclipse/cdt/core/builder/model/ICPosixBuildConstants.java
diff -N build/org/eclipse/cdt/core/builder/model/ICPosixBuildConstants.java
--- build/org/eclipse/cdt/core/builder/model/ICPosixBuildConstants.java	17 Feb 2003 19:10:36 -0000	1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,48 +0,0 @@
-/**********************************************************************
- * Copyright (c) 2002,2003 Timesys 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: 
- * Timesys - Initial API and implementation
- **********************************************************************/
-
-package org.eclipse.cdt.core.builder.model;
-
-/**
- * Standard build configuration constants.
- */
-public interface ICPosixBuildConstants {
-	public final static String CPP_INCLUDES = "posix.cpp.includes"; //$NON-NLS-1$
-	public final static String CPP_DEFINITIONS = "posix.cpp.definitions"; //$NON-NLS-1$
-
-	public final static String CC_ENABLE_PROFILE = "posix.cc.profile"; //$NON-NLS-1$
-	public final static String CC_ENABLE_DEBUG = "posix.cc.debug"; //$NON-NLS-1$
-	public final static String CC_ENABLE_OPTIMIZE = "posix.cc.optimize"; //$NON-NLS-1$
-	public final static String CC_OPTIMZE_LEVEL = "posix.cc.optimize.level"; //$NON-NLS-1$
-	public final static String CC_USER_ARGS = "posix.cc.user"; //$NON-NLS-1$
-
-	public final static String CC_OPTIMIZE_NONE = "none"; //$NON-NLS-1$
-	public final static String CC_OPTIMIZE_SOME = "some"; //$NON-NLS-1$
-	public final static String CC_OPTIMIZE_FULL = "full"; //$NON-NLS-1$
-
-	public final static String CC_WARN_ALL = "posix.cc.warn.all"; //$NON-NLS-1$
-	public final static String CC_WARN_ASERROR = "posix.cc.warn.aserror"; //$NON-NLS-1$
-	public final static String CC_WARN_FORMAT = "posix.cc.warn.format"; //$NON-NLS-1$
-	public final static String CC_WARN_POINTERAR = "posix.cc.warn.pointerar"; //$NON-NLS-1$
-	public final static String CC_WARN_SWITCH = "posix.cc.warn.switch"; //$NON-NLS-1$
-	public final static String CC_WARN_UNREACH = "posix.cc.warn.unreach"; //$NON-NLS-1$
-	public final static String CC_WARN_UNUSED = "posix.cc.warn.unused"; //$NON-NLS-1$
-
-	public final static String LD_OUTPUT = "posix.ld.output"; //$NON-NLS-1$
-	public final static String LD_USER_ARGS = "posix.ld.user"; //$NON-NLS-1$
-	public final static String LD_LINK_STATIC = "posix.ld.link.static"; //$NON-NLS-1$
-	public final static String LD_LINK_AS_PROGRAM = "posix.ld.link.as.program"; //$NON-NLS-1$
-	public final static String LD_LINK_AS_SHARED = "posix.ld.link.as.shared"; //$NON-NLS-1$
-	public final static String LD_LINK_AS_ARCHIVE = "posix.ld.link.as.archive"; //$NON-NLS-1$
-	public final static String LD_STRIP = "posix.ld.strip"; //$NON-NLS-1$
-	public final static String LD_LIBS = "posix.ld.libs"; //$NON-NLS-1$
-	public final static String LD_LIBPATHS = "posix.ld.libpaths"; //$NON-NLS-1$
-}
Index: build/org/eclipse/cdt/core/builder/model/ICTool.java
===================================================================
RCS file: build/org/eclipse/cdt/core/builder/model/ICTool.java
diff -N build/org/eclipse/cdt/core/builder/model/ICTool.java
--- build/org/eclipse/cdt/core/builder/model/ICTool.java	17 Feb 2003 19:10:36 -0000	1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,96 +0,0 @@
-/**********************************************************************
- * Copyright (c) 2002,2003 Timesys 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: 
- * Timesys - Initial API and implementation
- **********************************************************************/
-
-package org.eclipse.cdt.core.builder.model;
-
-import java.io.ByteArrayOutputStream;
-
-import org.eclipse.cdt.core.IErrorParser;
-import org.eclipse.core.runtime.IPath;
-
-/**
- * ICTool represents an instance of a tool.
- * <p>
- * Tools represent a particular executable (ex, "gcc", etc.)
- * that can be run in order to produce some output.  The
- * exec() method provides a shorthand that allows a caller
- * to execute the tool and gather the resultant output
- * streams.
- * <p>
- * Toolchain providers use this interface to represent
- * individual tools within a toolchain.
- * <p>
- * Stand-alone tool providers (flex, yacc, rpcgen, etc.) make
- * use of this to define generic build tools that can be "mixed
- * in" to any toolchain.
- * <p>
- * See also the <a href="../../../../../../CTool.html">CTool</a>
- * extension point documentation.
- */
-public interface ICTool {
-
-	/**
-	 * Convenince class that just contains a reference to
-	 * two byte array output streams named sterr and stdout.
-	 */
-	class IOResults {
-		public ByteArrayOutputStream stderr = new ByteArrayOutputStream();
-		public ByteArrayOutputStream stdout = new ByteArrayOutputStream();
-	}
-
-	/**
-	 * Returns the type ID for this tool.  This type ID corresponds
-	 * to a CToolType extension ID
-	 * 
-	 * @return the type ID for this tool.
-	 */
-	String getTypeId();
-
-	/**
-	 * Returns a unique identifuer for this tool instance.
-	 * 
-	 * @return the type ID for this tool.
-	 */
-	String getId();
-
-	/**
-	 * Returns the explicit path to the executable associated
-	 * with this tool instance..
-	 * 
-	 * @return path to executable.
-	 */
-	IPath getPath();
-
-	/**
-	 * Indicates whether or not the executable referenced by this
-	 * tool instance actually exists.
-	 * 
-	 * @return true if the associated tool executable exists.
-	 */
-	boolean exists();
-
-	/**
-	 * Run the executable referenced by this tool, using the
-	 * supplied parameters.
-	 * 
-	 * @param parameters parameters to pass to tool when executing.
-	 * @param workingDir working directory for tool execution.
-	 */
-	IOResults exec(String[] parameters, String workingDir);
-
-	/**
-	 * Get an instance of an error parser that is capable
-	 * of dealing with the tool's output.
-	 * 
-	 * @return error parser for the tool.
-	 */
-	IErrorParser getErrorParser();
-}
Index: build/org/eclipse/cdt/core/builder/model/ICToolType.java
===================================================================
RCS file: build/org/eclipse/cdt/core/builder/model/ICToolType.java
diff -N build/org/eclipse/cdt/core/builder/model/ICToolType.java
--- build/org/eclipse/cdt/core/builder/model/ICToolType.java	17 Feb 2003 19:10:36 -0000	1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,35 +0,0 @@
-/**********************************************************************
- * Copyright (c) 2002,2003 Timesys 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: 
- * Timesys - Initial API and implementation
- **********************************************************************/
-
-package org.eclipse.cdt.core.builder.model;
-
-/**
- * Interface representing a particular tool classification
- * (ex, GNU c compiler, etc.)
- * <p>
- * See also the <a href="../../../../../../CToolType.html">CToolType</a>
- * extension point documentation.
- */
-public interface ICToolType {
-	/**
-	 * Returns the unique id for the tool type.
-	 * 
-	 * @return unique id.
-	 */
-	public String getId();
-
-	/**
-	 * Returns the name of the tool type.
-	 * 
-	 * @return provider name.
-	 */
-	public String getName();
-}
Index: build/org/eclipse/cdt/core/builder/model/ICToolchain.java
===================================================================
RCS file: build/org/eclipse/cdt/core/builder/model/ICToolchain.java
diff -N build/org/eclipse/cdt/core/builder/model/ICToolchain.java
--- build/org/eclipse/cdt/core/builder/model/ICToolchain.java	17 Feb 2003 19:10:36 -0000	1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,75 +0,0 @@
-/**********************************************************************
- * Copyright (c) 2002,2003 Timesys 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: 
- * Timesys - Initial API and implementation
- **********************************************************************/
-
-package org.eclipse.cdt.core.builder.model;
-
-import org.eclipse.core.resources.IFile;
-
-/**
- * The ICToolchain interface represents a collection of
- * associated tools.  A typical toolchain might consist
- * of a compiler, an assembler, a linker, etc.
- * <p>
- * Many ICToolchain operations happen in the context of
- * a build configuration, and so take an ICBuildConfig
- * parameter.  The build configuration provides the
- * toolchain with information about the parameters to
- * use when generating build commands.
- */
-public interface ICToolchain {
-
-	/**
-	 * Get the build commands needed to build a file.
-	 * 
-	 * @param file file that needs to be built.
-	 * @param cfg build configuration context.
-	 * @return build command(s) needed to build this file,
-	 * or <b>null</b> the specified file cannot (or should
-	 * not) be processed by this toolchain.
-	 */
-	ICBuildCmd[] getBuildCommands(IFile file, ICBuildConfig cfg);
-
-	/**
-	 * Get the dependencies for a file.
-	 * 
-	 * @param file file to compute dependencies for.
-	 * @param cfg build configuration context.
-	 * @return file(s) that the given file depends on,
-	 * or <b>null</b> the specified file does not have
-	 * any dependencies.
-	 */
-	IFile[] getDependencies(IFile file, ICBuildConfig cfg);
-
-	/**
-	 * Get the output files generated by building a file.
-	 * 
-	 * @param file file to compute outputs for.
-	 * @param cfg build configuration context.
-	 * @return file(s) that will be generated in the process
-	 * of building the specified file.
-	 */
-	IFile[] getOutputs(IFile file, ICBuildConfig cfg);
-
-	/**
-	 * Get the tools associated with this toolchain.
-	 *
-	 * @return tools associated with this toolchain
-	 */
-	ICTool[] getTools();
-
-	/**
-	 * Indicate whether or not this toolchain is capable of and
-	 * interested in handling the specified file.
-	 * @param file file to examine.
-	 * @return true if the toolchain can process the file.
-	 */
-	boolean canProcess(IFile file);
-}
Index: build/org/eclipse/cdt/core/builder/model/ICToolchainProvider.java
===================================================================
RCS file: build/org/eclipse/cdt/core/builder/model/ICToolchainProvider.java
diff -N build/org/eclipse/cdt/core/builder/model/ICToolchainProvider.java
--- build/org/eclipse/cdt/core/builder/model/ICToolchainProvider.java	17 Feb 2003 19:10:36 -0000	1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,48 +0,0 @@
-/**********************************************************************
- * Copyright (c) 2002,2003 Timesys 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: 
- * Timesys - Initial API and implementation
- **********************************************************************/
-
-package org.eclipse.cdt.core.builder.model;
-
-/**
- * Interface representing a class that makes one or more
- * toolchains (collections of related tools) available to
- * the IDE.
- * <br>
- * Using a toolchain provider allows clients to implement
- * toolchain location logic in whatever manner suits them
- * best.  For example, a toolchain provider may locate a
- * toolchain by examining the local filesystem, reading
- * a configuration file, providing UI elements to allow
- * a user to specify particular executable to use as part
- * of a specialize toolchain, etc.
- * <p>
- * See also the <a href="../../../../../../CToolchain.html">CToolchain</a>
- * extension point documentation.
- */
-public interface ICToolchainProvider {
-
-	/**
-	 * Return the ICToolchain instances managed by this provider.
-	 * 
-	 * @return toolchain instances managed by this provider.
-	 */
-	ICToolchain[] getToolchains();
-
-	/**
-	 * Return an ICToolchain instance managed by this provider.
-	 * 
-	 * @param id toolchain ID.
-	 * @return toolchain instance, or <b>null</b> if the
-	 * provider does not recognize the toolchain ID.
-	 */
-	ICToolchain getToolchain(String id);
-
-}
Index: build/org/eclipse/cdt/core/builder/model/internal/CBuildConfig.java
===================================================================
RCS file: build/org/eclipse/cdt/core/builder/model/internal/CBuildConfig.java
diff -N build/org/eclipse/cdt/core/builder/model/internal/CBuildConfig.java
--- build/org/eclipse/cdt/core/builder/model/internal/CBuildConfig.java	17 Feb 2003 19:10:36 -0000	1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,391 +0,0 @@
-/**********************************************************************
- * Copyright (c) 2002,2003 Timesys 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: 
- * Timesys - Initial API and implementation
- **********************************************************************/
-
-package org.eclipse.cdt.core.builder.model.internal;
-
-import java.io.IOException;
-import java.io.StringReader;
-import java.util.List;
-import java.util.Map;
-
-import javax.xml.parsers.DocumentBuilder;
-import javax.xml.parsers.DocumentBuilderFactory;
-import javax.xml.parsers.ParserConfigurationException;
-
-import org.apache.xerces.dom.DocumentImpl;
-import org.eclipse.cdt.core.builder.BuilderPlugin;
-import org.eclipse.cdt.core.builder.model.ICBuildConfig;
-import org.eclipse.cdt.core.builder.model.ICBuildConfigWorkingCopy;
-import org.eclipse.core.resources.IContainer;
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IProject;
-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.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.PlatformObject;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.debug.core.DebugException;
-import org.eclipse.debug.core.DebugPlugin;
-import org.eclipse.debug.internal.core.DebugCoreMessages;
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
-import org.xml.sax.InputSource;
-import org.xml.sax.SAXException;
-
-/**
- * @author sam.robb
- */
-public class CBuildConfig extends PlatformObject implements ICBuildConfig {
-
-	/**
-	 * Location this configuration is stored in. This 
-	 * is the key for a build configuration handle.
-	 */
-	private IPath fLocation;
-	
-	/**
-	 * Constructs a build configuration in the given location.
-	 * 
-	 * @param location path to where this build configuration's
-	 *  underlying file is located
-	 */
-	protected CBuildConfig(IPath location) {
-		setLocation(location);
-	}
-
-	/**
-	 * Constructs a launch configuration from the given
-	 * memento.
-	 * 
-	 * @param memento configuration memento
-	 * @exception CoreException if the memento is invalid or
-	 * 	an exception occurrs reading the memento
-	 */
-	protected CBuildConfig(String memento) throws CoreException {
-		Exception ex = null;
-		try {
-			Element root = null;
-			DocumentBuilder parser =
-				DocumentBuilderFactory.newInstance().newDocumentBuilder();
-			StringReader reader = new StringReader(memento);
-			InputSource source = new InputSource(reader);
-			root = parser.parse(source).getDocumentElement();
-			
-			String localString = root.getAttribute("local"); //$NON-NLS-1$
-			String path = root.getAttribute("path"); //$NON-NLS-1$
-
-			String message = null;				
-			if (path == null) {
-				message = DebugCoreMessages.getString("LaunchConfiguration.Invalid_build_configuration_memento__missing_path_attribute_3"); //$NON-NLS-1$
-			} else if (localString == null) {
-				message = DebugCoreMessages.getString("LaunchConfiguration.Invalid_build_configuration_memento__missing_local_attribute_4"); //$NON-NLS-1$
-			}
-			if (message != null) {
-				IStatus s = newStatus(message, DebugException.INTERNAL_ERROR, null);
-				throw new CoreException(s);
-			}
-			
-			IPath location = ResourcesPlugin.getWorkspace().getRoot().getLocation().append(path);
-			
-			setLocation(location);
-			return;
-		} catch (ParserConfigurationException e) {
-			ex = e;			
-		} catch (SAXException e) {
-			ex = e;
-		} catch (IOException e) {
-			ex = e;
-		}
-		IStatus s = newStatus(DebugCoreMessages.getString("LaunchConfiguration.Exception_occurred_parsing_memento_5"), DebugException.INTERNAL_ERROR, ex); //$NON-NLS-1$
-		throw new CoreException(s);
-	}
-	
-	/**
-	 * Creates and returns a new error status based on 
-	 * the given mesasge, code, and exception.
-	 * 
-	 * @param message error message
-	 * @param code error code
-	 * @param e exception or <code>null</code>
-	 * @return status
-	 */
-	protected IStatus newStatus(String message, int code, Throwable e) {
-		return new Status(IStatus.ERROR, DebugPlugin.getUniqueIdentifier(), code, message, e);
-	}
-	
-	/**
-	 * @see ICBuildConfig#build(IProgressMonitor)
-	 */
-	public void build(IProgressMonitor monitor) throws CoreException {
-	}
-	
-	/**
-	 * A configuration's name is that of the last segment
-	 * in it's location (subtract the ".build" extension).
-	 * 
-	 * @see ICBuildConfig#getName()
-	 */
-	public String getName() {
-		return getLastLocationSegment();
-	}
-	
-	private String getLastLocationSegment() {
-		String name = getLocation().lastSegment();
-		name = name.substring(0, name.length() - (BUILD_CONFIGURATION_FILE_EXTENSION.length() + 1));
-		return name;
-	}
-
-	/**
-	 * @see ICBuildConfig#getLocation()
-	 */
-	public IPath getLocation() {
-		return fLocation;
-	}
-
-	/**
-	 * Sets the location of this configuration's underlying
-	 * file.
-	 * 
-	 * @param location the location of this configuration's underlying
-	 *  file
-	 */
-	private void setLocation(IPath location) {
-		fLocation = location;
-	}
-
-	/**
-	 * @see ICBuildConfig#exists()
-	 */
-	public boolean exists() {
-		IFile file = getFile();
-		if (file == null) {
-			return getLocation().toFile().exists();
-		} else {
-			return file.exists();
-		}
-	}
-
-	/**
-	 * @see ICBuildConfig#getAttribute(String, int)
-	 */
-	public int getAttribute(String attributeName, int defaultValue) throws CoreException {
-		return getInfo().getIntAttribute(attributeName, defaultValue);
-	}
-
-	/**
-	 * @see ICBuildConfig#getAttribute(String, String)
-	 */
-	public String getAttribute(String attributeName, String defaultValue) throws CoreException {
-		return getInfo().getStringAttribute(attributeName, defaultValue);
-	}
-
-	/**
-	 * @see ICBuildConfig#getAttribute(String, boolean)
-	 */
-	public boolean getAttribute(String attributeName, boolean defaultValue) throws CoreException {
-		return getInfo().getBooleanAttribute(attributeName, defaultValue);
-	}
-
-	/**
-	 * @see ICBuildConfig#getAttribute(String, List)
-	 */
-	public List getAttribute(String attributeName, List defaultValue) throws CoreException {
-		return getInfo().getListAttribute(attributeName, defaultValue);
-	}
-
-	/**
-	 * @see ICBuildConfig#getAttribute(String, Map)
-	 */
-	public Map getAttribute(String attributeName, Map defaultValue) throws CoreException {
-		return getInfo().getMapAttribute(attributeName, defaultValue);
-	}
-
-	/**
-	 * @see ICBuildConfig#isLocal()
-	 */
-	public boolean isLocal() {
-		return  getFile() == null;
-	}
-
-	/**
-	 * @see ICBuildConfig#getWorkingCopy()
-	 */
-	public ICBuildConfigWorkingCopy getWorkingCopy() throws CoreException {
-		return new CBuildConfigWorkingCopy(this);
-	}
-	
-	/**
-	 * @see ICBuildConfig#copy(String name)
-	 */
-	public ICBuildConfigWorkingCopy copy(String name) throws CoreException {
-		ICBuildConfigWorkingCopy copy = new CBuildConfigWorkingCopy(this, name);
-		return copy;
-	}	
-
-	/**
-	 * @see ICBuildConfig#isWorkingCopy()
-	 */
-	public boolean isWorkingCopy() {
-		return false;
-	}
-
-	/**
-	 * @see ICBuildConfig#delete()
-	 */
-	public void delete() throws CoreException {
-		if (exists()) {
-			if (isLocal()) {
-				if (!(getLocation().toFile().delete())) {
-					throw new DebugException(
-						new Status(Status.ERROR, DebugPlugin.getUniqueIdentifier(),
-						 DebugException.REQUEST_FAILED, DebugCoreMessages.getString("LaunchConfiguration.Failed_to_delete_build_configuration._1"), null) //$NON-NLS-1$
-					);
-				}
-				// manually update the build manager cache since there
-				// will be no resource delta
-				getBuildConfigurationManager().configurationDeleted(this);
-			} else {
-				// delete the resource using IFile API such that
-				// resource deltas are fired.
-				IResource file = getFile();
-				if (file != null) {
-					file.delete(true, null);
-				} else {
-					// Error - the exists test passed, but could not locate file 
-				}
-			}
-		}
-	}
-	
-	/**
-	 * Returns the info object containing the attributes
-	 * of this configuration
-	 * 
-	 * @return info for this handle
-	 * @exception CoreException if unable to retrieve the
-	 *  info object
-	 */
-	protected CBuildConfigInfo getInfo() throws CoreException {
-		return getBuildConfigurationManager().getInfo(this);
-	}
-	
-	/**
-	 * Returns the build manager
-	 * 
-	 * @return build manager
-	 */
-	protected CBuildConfigManager getBuildConfigurationManager() {
-		return BuilderPlugin.getDefault().getBuildConfigurationManager();
-	}
-
-	/**
-	 * @see ICBuildConfig#getMemento()
-	 */
-	public String getMemento() throws CoreException {
-		IPath relativePath = getFile().getFullPath();
-		relativePath = relativePath.setDevice(null);
-		
-		Document doc = new DocumentImpl();
-		Element node = doc.createElement("buildConfiguration"); //$NON-NLS-1$
-		doc.appendChild(node);
-		node.setAttribute("local", (new Boolean(isLocal())).toString()); //$NON-NLS-1$
-		node.setAttribute("path", relativePath.toString()); //$NON-NLS-1$
-		
-		try {
-			return CBuildConfigManager.serializeDocument(doc);
-		} catch (IOException e) {
-			IStatus status = newStatus(DebugCoreMessages.getString("LaunchConfiguration.Exception_occurred_creating_build_configuration_memento_9"), DebugException.INTERNAL_ERROR,  e); //$NON-NLS-1$
-			throw new CoreException(status);
-		}
-	}
-
-	/**
-	 * @see ICBuildConfig#getFile()
-	 */	
-	public IFile getFile() {
-		return ResourcesPlugin.getWorkspace().getRoot().getFileForLocation(getLocation());
-	}
-
-	/**
-	 * @see ICBuildConfig#getProject()
-	 */	
-	public IProject getProject() {
-		return getFile().getProject();
-	}
-
-	/**
-	 * @see ICBuildConfig#contentsEqual(ICBuildConfig)
-	 */
-	public boolean contentsEqual(ICBuildConfig object) {
-		try {
-			if (object instanceof CBuildConfig) {
-				CBuildConfig otherConfig = (CBuildConfig) object;
-				return getName().equals(otherConfig.getName())
-				 	 && getLocation().equals(otherConfig.getLocation())
-					 && getInfo().equals(otherConfig.getInfo());
-			}
-			return false;
-		} catch (CoreException ce) {
-			return false;
-		}
-	}
-
-	/**
-	 * Returns whether this configuration is equal to the
-	 * given configuration. Two configurations are equal if
-	 * they are stored in the same location (and neither one
-	 * is a working copy).
-	 * 
-	 * @return whether this configuration is equal to the
-	 *  given configuration
-	 * @see Object#equals(Object)
-	 */
-	public boolean equals(Object object) {
-		if (object instanceof ICBuildConfig) {
-			if (isWorkingCopy()) {
-				return this == object;
-			} 
-			ICBuildConfig config = (ICBuildConfig) object;
-			if (!config.isWorkingCopy()) {
-				return config.getLocation().equals(getLocation());
-			}
-		}
-		return false;
-	}
-	
-	/**
-	 * @see Object#hashCode()
-	 */
-	public int hashCode() {
-		return getLocation().hashCode();
-	}
-	
-	/**
-	 * Returns the container this build configuration is 
-	 * stored in, or <code>null</code> if this build configuration
-	 * is stored locally.
-	 * 
-	 * @return the container this build configuration is 
-	 * stored in, or <code>null</code> if this build configuration
-	 * is stored locally
-	 */
-	protected IContainer getContainer() {
-		IFile file = getFile();
-		if (file != null) {
-			return file.getParent();
-		}
-		return null;
-	}
-
-}
Index: build/org/eclipse/cdt/core/builder/model/internal/CBuildConfigInfo.java
===================================================================
RCS file: build/org/eclipse/cdt/core/builder/model/internal/CBuildConfigInfo.java
diff -N build/org/eclipse/cdt/core/builder/model/internal/CBuildConfigInfo.java
--- build/org/eclipse/cdt/core/builder/model/internal/CBuildConfigInfo.java	17 Feb 2003 19:10:36 -0000	1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,474 +0,0 @@
-/**********************************************************************
- * Copyright (c) 2002,2003 Timesys 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: 
- * Timesys - Initial API and implementation
- **********************************************************************/
-
-package org.eclipse.cdt.core.builder.model.internal;
-
-import java.io.IOException;
-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.apache.xerces.dom.DocumentImpl;
-import org.eclipse.cdt.core.builder.BuilderPlugin;
-import org.eclipse.cdt.core.builder.model.ICBuildConfigManager;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.debug.core.DebugException;
-import org.eclipse.debug.core.DebugPlugin;
-import org.eclipse.debug.internal.core.DebugCoreMessages;
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-import org.w3c.dom.NodeList;
- 
-/**
- * @author sam.robb
- *
- * The information associated with a build configuration
- * handle.
- */
-public class CBuildConfigInfo {
-
-	/**
-	 * This configurations attribute table.
-	 * Keys are <code>String</code>s and values
-	 * are one of <code>String</code>, <code>Integer</code>,
-	 * or <code>Boolean</code>.
-	 */
-	private HashMap fAttributes;
-	
-	/**
-	 * Constructs a new empty info
-	 */
-	protected CBuildConfigInfo() {
-		setAttributeTable(new HashMap(10));
-	}
-	
-	/**
-	 * Returns this configuration's attribute table.
-	 * 
-	 * @return attribute table
-	 */
-	private HashMap getAttributeTable() {
-		return fAttributes;
-	}
-
-	/**
-	 * Sets this configuration's attribute table.
-	 * 
-	 * @param table attribute table
-	 */	
-	private void setAttributeTable(HashMap table) {
-		fAttributes = table;
-	}
-	
-	/**
-	 * Returns the <code>String</code> attribute with the
-	 * given key or the given default value if undefined.
-	 * 
-	 * @return attribute specified by given key or the defaultValue
-	 *  if undefined
-	 * @exception if the attribute with the given key exists
-	 *  but is not a <code>String</code>
-	 */
-	protected String getStringAttribute(String key, String defaultValue) throws CoreException {
-		Object attr = getAttributeTable().get(key);
-		if (attr != null) {
-			if (attr instanceof String) {
-				return (String)attr;
-			} else {
-				throw new DebugException(
-					new Status(
-					 Status.ERROR, DebugPlugin.getUniqueIdentifier(),
-					 DebugException.REQUEST_FAILED, MessageFormat.format(DebugCoreMessages.getString("LaunchConfigurationInfo.Attribute_{0}_is_not_of_type_java.lang.String._1"), new String[] {key}), null //$NON-NLS-1$
-					)
-				);
-			}
-		}
-		return defaultValue;
-	}
-	
-	/**
-	 * Returns the <code>int</code> attribute with the
-	 * given key or the given default value if undefined.
-	 * 
-	 * @return attribute specified by given key or the defaultValue
-	 *  if undefined
-	 * @exception if the attribute with the given key exists
-	 *  but is not an <code>int</code>
-	 */
-	protected int getIntAttribute(String key, int defaultValue) throws CoreException {
-		Object attr = getAttributeTable().get(key);
-		if (attr != null) {
-			if (attr instanceof Integer) {
-				return ((Integer)attr).intValue();
-			} else {
-				throw new DebugException(
-					new Status(
-					 Status.ERROR, DebugPlugin.getUniqueIdentifier(),
-					 DebugException.REQUEST_FAILED, MessageFormat.format(DebugCoreMessages.getString("LaunchConfigurationInfo.Attribute_{0}_is_not_of_type_int._2"), new String[] {key}), null //$NON-NLS-1$
-					)
-				);
-			}
-		}
-		return defaultValue;
-	}
-	
-	/**
-	 * Returns the <code>boolean</code> attribute with the
-	 * given key or the given default value if undefined.
-	 * 
-	 * @return attribute specified by given key or the defaultValue
-	 *  if undefined
-	 * @exception if the attribute with the given key exists
-	 *  but is not a <code>boolean</code>
-	 */
-	protected boolean getBooleanAttribute(String key, boolean defaultValue) throws CoreException {
-		Object attr = getAttributeTable().get(key);
-		if (attr != null) {
-			if (attr instanceof Boolean) {
-				return ((Boolean)attr).booleanValue();
-			} else {
-				throw new DebugException(
-					new Status(
-					 Status.ERROR, DebugPlugin.getUniqueIdentifier(),
-					 DebugException.REQUEST_FAILED, MessageFormat.format(DebugCoreMessages.getString("LaunchConfigurationInfo.Attribute_{0}_is_not_of_type_boolean._3"), new String[] {key}), null //$NON-NLS-1$
-					)
-				);
-			}
-		}
-		return defaultValue;
-	}
-	
-	/**
-	 * Returns the <code>java.util.List</code> attribute with the
-	 * given key or the given default value if undefined.
-	 * 
-	 * @return attribute specified by given key or the defaultValue
-	 *  if undefined
-	 * @exception if the attribute with the given key exists
-	 *  but is not a <code>java.util.List</code>
-	 */
-	protected List getListAttribute(String key, List defaultValue) throws CoreException {
-		Object attr = getAttributeTable().get(key);
-		if (attr != null) {
-			if (attr instanceof List) {
-				return (List)attr;
-			} else {
-				throw new DebugException(
-					new Status(
-					 Status.ERROR, DebugPlugin.getUniqueIdentifier(),
-					 DebugException.REQUEST_FAILED, MessageFormat.format(DebugCoreMessages.getString("LaunchConfigurationInfo.Attribute_{0}_is_not_of_type_java.util.List._1"), new String[] {key}), null //$NON-NLS-1$
-					)
-				);
-			}
-		}
-		return defaultValue;
-	}
-	
-	/**
-	 * Returns the <code>java.util.Map</code> attribute with the
-	 * given key or the given default value if undefined.
-	 * 
-	 * @return attribute specified by given key or the defaultValue
-	 *  if undefined
-	 * @exception if the attribute with the given key exists
-	 *  but is not a <code>java.util.Map</code>
-	 */
-	protected Map getMapAttribute(String key, Map defaultValue) throws CoreException {
-		Object attr = getAttributeTable().get(key);
-		if (attr != null) {
-			if (attr instanceof Map) {
-				return (Map)attr;
-			} else {
-				throw new DebugException(
-					new Status(
-					 Status.ERROR, DebugPlugin.getUniqueIdentifier(),
-					 DebugException.REQUEST_FAILED, MessageFormat.format(DebugCoreMessages.getString("LaunchConfigurationInfo.Attribute_{0}_is_not_of_type_java.util.Map._1"), new String[] {key}), null //$NON-NLS-1$
-					)
-				);
-			}
-		}
-		return defaultValue;
-	}
-	
-	/**
-	 * Returns a copy of this info object
-	 * 
-	 * @return copy of this info
-	 */
-	protected CBuildConfigInfo getCopy() {
-		CBuildConfigInfo copy = new CBuildConfigInfo();
-		copy.setAttributeTable((HashMap)getAttributeTable().clone());
-		return copy;
-	}
-	
-	/**
-	 * Sets the given attribute to the given value. Only
-	 * working copy's should use this API.
-	 * 
-	 * @param key attribute key
-	 * @param value attribuet value
-	 */
-	protected void setAttribute(String key, Object value) {
-		if (value == null) {
-			getAttributeTable().remove(key);
-		} else {
-			getAttributeTable().put(key, value);
-		}
-	}
-	
-	/**
-	 * Returns the content of this info as XML
-	 * 
-	 * @return the content of this info as XML
-	 * @exception IOException if an exception occurs creating the XML
-	 */
-	protected String getAsXML() throws IOException {
-
-		Document doc = new DocumentImpl();
-		Element configRootElement = doc.createElement("buildConfiguration"); //$NON-NLS-1$
-		doc.appendChild(configRootElement);
-		
-		Iterator keys = getAttributeTable().keySet().iterator();
-		while (keys.hasNext()) {
-			String key = (String)keys.next();
-			Object value = getAttributeTable().get(key);
-			if (value == null) {
-				continue;
-			}
-			Element element = null;
-			String valueString = null;
-			if (value instanceof String) {
-				valueString = (String)value;
-				element = createKeyValueElement(doc, "stringAttribute", key, valueString); //$NON-NLS-1$
-			} else if (value instanceof Integer) {
-				valueString = ((Integer)value).toString();
-				element = createKeyValueElement(doc, "intAttribute", key, valueString); //$NON-NLS-1$
-			} else if (value instanceof Boolean) {
-				valueString = ((Boolean)value).toString();
-				element = createKeyValueElement(doc, "booleanAttribute", key, valueString); //$NON-NLS-1$
-			} else if (value instanceof List) {				
-				element = createListElement(doc, "listAttribute", key, (List)value); //$NON-NLS-1$
-			} else if (value instanceof Map) {				
-				element = createMapElement(doc, "mapAttribute", key, (Map)value); //$NON-NLS-1$
-			}			
-			configRootElement.appendChild(element);
-		}
-
-		return CBuildConfigManager.serializeDocument(doc);
-	}
-	
-	/**
-	 * Helper method that creates a 'key value' element of the specified type with the 
-	 * specified attribute values.
-	 */
-	protected Element createKeyValueElement(Document doc, String elementType, String key, String value) {
-		Element element = doc.createElement(elementType);
-		element.setAttribute("key", key); //$NON-NLS-1$
-		element.setAttribute("value", value); //$NON-NLS-1$
-		return element;
-	}
-	
-	protected Element createListElement(Document doc, String elementType, String listKey, List list) {
-		Element listElement = doc.createElement(elementType);
-		listElement.setAttribute("key", listKey); //$NON-NLS-1$
-		Iterator iterator = list.iterator();
-		while (iterator.hasNext()) {
-			String value = (String) iterator.next();
-			Element element = doc.createElement("listEntry"); //$NON-NLS-1$
-			element.setAttribute("value", value); //$NON-NLS-1$
-			listElement.appendChild(element);
-		}		
-		return listElement;
-	}
-	
-	protected Element createMapElement(Document doc, String elementType, String mapKey, Map map) {
-		Element mapElement = doc.createElement(elementType);
-		mapElement.setAttribute("key", mapKey); //$NON-NLS-1$
-		Iterator iterator = map.keySet().iterator();
-		while (iterator.hasNext()) {
-			String key = (String) iterator.next();
-			String value = (String) map.get(key);
-			Element element = doc.createElement("mapEntry"); //$NON-NLS-1$
-			element.setAttribute("key", key); //$NON-NLS-1$
-			element.setAttribute("value", value); //$NON-NLS-1$
-			mapElement.appendChild(element);
-		}		
-		return mapElement;		
-	}
-	
-	protected void initializeFromXML(Element root) throws CoreException {
-		if (!root.getNodeName().equalsIgnoreCase("buildConfiguration")) { //$NON-NLS-1$
-			throw getInvalidFormatDebugException();
-		}
-		
-		NodeList list = root.getChildNodes();
-		int length = list.getLength();
-		for (int i = 0; i < length; ++i) {
-			Node node = list.item(i);
-			short type = node.getNodeType();
-			if (type == Node.ELEMENT_NODE) {
-				Element element = (Element) node;
-				String nodeName = element.getNodeName();
-				
-				if (nodeName.equalsIgnoreCase("stringAttribute")) { //$NON-NLS-1$
-					setStringAttribute(element);
-				} else if (nodeName.equalsIgnoreCase("intAttribute")) { //$NON-NLS-1$
-					setIntegerAttribute(element);
-				} else if (nodeName.equalsIgnoreCase("booleanAttribute"))  { //$NON-NLS-1$
-					setBooleanAttribute(element);
-				} else if (nodeName.equalsIgnoreCase("listAttribute")) {   //$NON-NLS-1$
-					setListAttribute(element);					
-				} else if (nodeName.equalsIgnoreCase("mapAttribute")) {    //$NON-NLS-1$
-					setMapAttribute(element);										
-				}
-			}
-		}
-	}	
-	
-	protected void setStringAttribute(Element element) throws CoreException {
-		String key = getKeyAttribute(element);
-		String value = getValueAttribute(element);
-		setAttribute(key, value);
-	}
-	
-	protected void setIntegerAttribute(Element element) throws CoreException {
-		String key = getKeyAttribute(element);
-		String value = getValueAttribute(element);
-		setAttribute(key, new Integer(value));
-	}
-	
-	protected void setBooleanAttribute(Element element) throws CoreException {
-		String key = getKeyAttribute(element);
-		String value = getValueAttribute(element);
-		setAttribute(key, new Boolean(value));
-	}
-	
-	protected void setListAttribute(Element element) throws CoreException {
-		String listKey = element.getAttribute("key");  //$NON-NLS-1$
-		NodeList nodeList = element.getChildNodes();
-		int entryCount = nodeList.getLength();
-		List list = new ArrayList(entryCount);
-		for (int i = 0; i < entryCount; i++) {
-			Node node = nodeList.item(i);
-			short type = node.getNodeType();
-			if (type == Node.ELEMENT_NODE) {
-				Element subElement = (Element) node;
-				String nodeName = subElement.getNodeName();				
-				if (!nodeName.equalsIgnoreCase("listEntry")) { //$NON-NLS-1$
-					throw getInvalidFormatDebugException();
-				}
-				String value = getValueAttribute(subElement);
-				list.add(value);
-			}
-		}
-		setAttribute(listKey, list);
-	}
-		
-	protected void setMapAttribute(Element element) throws CoreException {
-		String mapKey = element.getAttribute("key");  //$NON-NLS-1$
-		NodeList nodeList = element.getChildNodes();
-		int entryCount = nodeList.getLength();
-		Map map = new HashMap(entryCount);
-		for (int i = 0; i < entryCount; i++) {
-			Node node = nodeList.item(i);
-			short type = node.getNodeType();
-			if (type == Node.ELEMENT_NODE) {
-				Element subElement = (Element) node;
-				String nodeName = subElement.getNodeName();				
-				if (!nodeName.equalsIgnoreCase("mapEntry")) { //$NON-NLS-1$
-					throw getInvalidFormatDebugException();
-				}
-				String key = getKeyAttribute(subElement);
-				String value = getValueAttribute(subElement);
-				map.put(key, value);
-			}
-		}
-		setAttribute(mapKey, map);
-	}
-		
-	protected String getKeyAttribute(Element element) throws CoreException {
-		String key = element.getAttribute("key");   //$NON-NLS-1$
-		if (key == null) {
-			throw getInvalidFormatDebugException();
-		}
-		return key;
-	}
-	
-	protected String getValueAttribute(Element element) throws CoreException {
-		String value = element.getAttribute("value");   //$NON-NLS-1$
-		if (value == null) {
-			throw getInvalidFormatDebugException();
-		}
-		return value;
-	}
-	
-	protected DebugException getInvalidFormatDebugException() {
-		return 
-			new DebugException(
-				new Status(
-				 Status.ERROR, DebugPlugin.getUniqueIdentifier(),
-				 DebugException.REQUEST_FAILED, DebugCoreMessages.getString("LaunchConfigurationInfo.Invalid_launch_configuration_XML._10"), null //$NON-NLS-1$
-				)
-			);
-	}
-	
-	/**
-	 * Two <code>CBuildConfigInfo</code> objects are equal if and only if
-	 * they have the same set of attributes with the same values.
-	 * 
-	 * @see Object#equals(Object)
-	 */
-	public boolean equals(Object obj) {
-		
-		// Make sure it's a LaunchConfigurationInfo object
-		if (!(obj instanceof CBuildConfigInfo)) {
-			return false;
-		}
-		
-		CBuildConfigInfo other = (CBuildConfigInfo) obj;
-		
-		// Make sure the attributes are the same
-		return compareAttributes(fAttributes, other.getAttributeTable());
-	}
-	
-	/**
-	 * Returns whether the two attribute maps are equal, consulting
-	 * registered comparator extensions.
-	 * 
-	 * @param map1 attribute map
-	 * @param map2 attribute map
-	 * @return whether the two attribute maps are equal
-	 */
-	protected boolean compareAttributes(HashMap map1, HashMap map2) {
-		ICBuildConfigManager manager = BuilderPlugin.getDefault().getBuildConfigurationManager();
-		if (map1.size() == map2.size()) {
-			Iterator attributes = map1.keySet().iterator();
-			while (attributes.hasNext()) {
-				String key = (String)attributes.next();
-				Object attr1 = map1.get(key);
-				Object attr2 = map2.get(key);
-				if (attr2 == null) {
-					return false;
-				}
-				if (!attr1.equals(attr2)) {
-					return false;
-				}
-			}
-			return true;	
-		}
-		return false;
-	}
-}
Index: build/org/eclipse/cdt/core/builder/model/internal/CBuildConfigManager.java
===================================================================
RCS file: build/org/eclipse/cdt/core/builder/model/internal/CBuildConfigManager.java
diff -N build/org/eclipse/cdt/core/builder/model/internal/CBuildConfigManager.java
--- build/org/eclipse/cdt/core/builder/model/internal/CBuildConfigManager.java	17 Feb 2003 19:10:36 -0000	1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,415 +0,0 @@
-/**********************************************************************
- * Copyright (c) 2002,2003 Timesys 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: 
- * Timesys - Initial API and implementation
- **********************************************************************/
-
-package org.eclipse.cdt.core.builder.model.internal;
-
-import java.io.ByteArrayOutputStream;
-import java.io.FileNotFoundException;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStreamWriter;
-import java.text.MessageFormat;
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import javax.xml.parsers.DocumentBuilder;
-import javax.xml.parsers.DocumentBuilderFactory;
-import javax.xml.parsers.ParserConfigurationException;
-
-import org.apache.xml.serialize.Method;
-import org.apache.xml.serialize.OutputFormat;
-import org.apache.xml.serialize.Serializer;
-import org.apache.xml.serialize.SerializerFactory;
-import org.eclipse.cdt.core.builder.model.ICBuildConfig;
-import org.eclipse.cdt.core.builder.model.ICBuildConfigListener;
-import org.eclipse.cdt.core.builder.model.ICBuildConfigManager;
-import org.eclipse.cdt.core.builder.model.ICBuildConfigWorkingCopy;
-import org.eclipse.core.resources.IContainer;
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.debug.core.DebugException;
-import org.eclipse.debug.core.DebugPlugin;
-import org.eclipse.debug.internal.core.DebugCoreMessages;
-import org.eclipse.debug.internal.core.ListenerList;
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
-import org.xml.sax.InputSource;
-import org.xml.sax.SAXException;
-
-/**
- * Manages build configurations.
- *
- * @see ICBuildConfigManager
- */
-public class CBuildConfigManager implements ICBuildConfigManager {
-
-	/**
-	 * Collection of listeners
-	 */
-	private ListenerList fListeners = new ListenerList(5);
-
-	/**
-	 * Types of notifications
-	 */
-	public static final int ADDED   = 0;
-	public static final int REMOVED = 1;
-	public static final int CHANGED = 2;
-
-	/**
-	 * Serializes a XML document into a string - encoded in UTF8 format,
-	 * with platform line separators.
-	 * 
-	 * @param doc document to serialize
-	 * @return the document as a string
-	 */
-	public static String serializeDocument(Document doc) throws IOException {
-		ByteArrayOutputStream s= new ByteArrayOutputStream();
-		OutputFormat format = new OutputFormat();
-		format.setIndenting(true);
-		format.setLineSeparator(System.getProperty("line.separator"));  //$NON-NLS-1$
-		
-		Serializer serializer =
-			SerializerFactory.getSerializerFactory(Method.XML).makeSerializer(
-				new OutputStreamWriter(s, "UTF8"), //$NON-NLS-1$
-				format);
-		serializer.asDOMSerializer().serialize(doc);
-		return s.toString("UTF8"); //$NON-NLS-1$		
-	}	
-
-	/**
-	 * @see ICBuildConfigManager#addListener(ICBuildConfigListener)
-	 */
-	public void addListener(ICBuildConfigListener listener) {
-		fListeners.add(listener);
-	}
-
-	/**
-	 * @see ICBuildConfigManager#removeListener(ICBuildConfigListener)
-	 */
-	public void removeListener(ICBuildConfigListener listener) {
-		fListeners.remove(listener);
-	}
-
-	/**
-	 * @see ICBuildConfigManager#addConfiguration(ICBuildConfig)
-	 */
-	public void addConfiguration(ICBuildConfig configuration) {
-		fireUpdate(configuration, ADDED);
-	}
-
-	/**
-	 * @see ICBuildConfigManager#removeConfiguration(ICBuildConfig)
-	 */
-	public void removeConfiguration(ICBuildConfig configuration) {
-		fireUpdate(configuration, REMOVED);
-	}
-
-	/**
-	 * @see ICBuildConfigManager#generateUniqueConfigurationNameFrom(IProject, String)
-	 */
-	public String generateUniqueConfigurationNameFrom(IProject project, String baseName) {
-		int index = 1;
-		int length= baseName.length();
-		int copyIndex = baseName.lastIndexOf(" ("); //$NON-NLS-1$
-		if (copyIndex > -1 && length > copyIndex + 2 && baseName.charAt(length - 1) == ')') {
-			String trailer = baseName.substring(copyIndex + 2, length -1);
-			if (isNumber(trailer)) {
-				try {
-					index = Integer.parseInt(trailer);
-					baseName = baseName.substring(0, copyIndex);
-				} catch (NumberFormatException nfe) {
-				}
-			}
-		} 
-		String newName = baseName;
-		try {
-			StringBuffer buffer= null;
-			while (isExistingConfigurationName(project, newName)) {
-				buffer = new StringBuffer(baseName);
-				buffer.append(" ("); //$NON-NLS-1$
-				buffer.append(String.valueOf(index));
-				index++;
-				buffer.append(')');
-				newName = buffer.toString();		
-			}		
-		} catch (CoreException e) {
-			DebugPlugin.log(e);
-		}
-		return newName;
-	}
-
-	/**
-	 * @see ICBuildConfigManager#getConfiguration(IFile)
-	 */
-	public ICBuildConfig getConfiguration(IFile file) {
-		return new CBuildConfig(file.getLocation());
-	}
-
-	/**
-	 * @see ICBuildConfigManager#getConfiguration(String)
-	 */
-	public ICBuildConfig getConfiguration(String memento) throws CoreException {
-		return new CBuildConfig(memento);
-	}
-
-	public ICBuildConfigWorkingCopy getConfiguration(IProject project, String name) {
-		if ((name == null) || (name.length() < 1)) {
-			name = "New Configuration";
-		}
-		name = generateUniqueConfigurationNameFrom(project, name);
-		return new CBuildConfigWorkingCopy(project, name);
-	}
-
-	/**
-	 * @see ICBuildConfigManager#getConfigurations(IProject)
-	 */
-	public ICBuildConfig[] getConfigurations(IProject project) throws CoreException {
-		List configs = findConfigurations(project, ICBuildConfig.BUILD_CONFIGURATION_FILE_EXTENSION);
-		return (ICBuildConfig[]) configs.toArray(new ICBuildConfig[configs.size()]);
-	}
-
-	/**
-	 * @see ICBuildConfigManager#isExistingConfigurationName(IProject, String)
-	 */
-	public boolean isExistingConfigurationName(IProject project, String name) throws CoreException {
-		List configFiles;
-		int count = 0;
-		
-		configFiles = findConfigurations(project, ICBuildConfig.BUILD_CONFIGURATION_FILE_EXTENSION);
-		count = configFiles.size();
-		
-		if (count > 0) {
-			for (Iterator iter = configFiles.iterator(); iter.hasNext();) {
-				ICBuildConfig element = (ICBuildConfig) iter.next();
-				if (name.equals(element.getName())) {
-					return true;
-				}
-			}
-		}
-		return false;
-	}
-
-	/**
-	 * Fires notification to the listeners that a configuration
-	 * has been added, removed, updated, or deleted.
-	 */
-	protected void fireUpdate(ICBuildConfig configuration, int update) {
-		Object[] copiedListeners = fListeners.getListeners();
-		for (int i= 0; i < copiedListeners.length; i++) {
-			ICBuildConfigListener listener = (ICBuildConfigListener) copiedListeners[i];
-			switch (update) {
-				case ADDED:
-					listener.configurationAdded(configuration);
-					break;
-				case REMOVED:
-					listener.configurationRemoved(configuration);
-					break;
-				case CHANGED:
-					listener.configurationChanged(configuration);
-					break;
-			}
-		}
-	}
-
-	/**
-	 * Notifies the manager that a configuration has been deleted.
-	 * 
-	 * @param project the project containing the configuration
-	 * @param config the configuration that was deleted
-	 */
-	protected void configurationDeleted(ICBuildConfig configuration) throws CoreException {
-		fireUpdate(configuration, REMOVED);
-	}
-	
-	/**
-	 * Notifies the manager that a configuration has been added.
-	 * 
-	 * @param project the project containing the configuration
-	 * @param config the configuration that was added
-	 */
-	protected void configurationAdded(ICBuildConfig configuration) throws CoreException {
-		if (isValid(configuration)) {
-			fireUpdate(configuration, ADDED);
-		} else {
-			fireUpdate(configuration, ADDED);
-		}
-	}
-
-	/**
-	 * Notifies the manager that a configuration has been added.
-	 * 
-	 * @param project the project containing the configuration
-	 * @param config the launch configuration that was changed
-	 */
-	protected void configurationChanged(ICBuildConfig configuration) {
-		if (isValid(configuration)) {
-			fireUpdate(configuration, CHANGED);
-		} else {
-			fireUpdate(configuration, REMOVED);
-		}								
-	}
-	
-	/**
-	 * Returns the info object for the specified launch configuration.
-	 * If the configuration exists, but is not yet in the cache,
-	 * an info object is built and added to the cache.
-	 * 
-	 * @exception CoreException if an exception occurs building
-	 *  the info object
-	 * @exception DebugException if the config does not exist
-	 */
-	protected CBuildConfigInfo getInfo(ICBuildConfig config) throws CoreException {
-		CBuildConfigInfo info = null;
-
-		if (config.exists()) {
-			InputStream stream = null;
-			
-			try {
-				IFile file = ((CBuildConfig) config).getFile();
-				stream = file.getContents();
-				info = createInfoFromXML(stream);
-			} catch (FileNotFoundException e) {
-				throw createDebugException(MessageFormat.format(DebugCoreMessages.getString("LaunchManager.{0}_occurred_while_reading_launch_configuration_file._1"), new String[]{e.toString()}), e); //$NON-NLS-1$					
-			} catch (SAXException e) {
-				throw createDebugException(MessageFormat.format(DebugCoreMessages.getString("LaunchManager.{0}_occurred_while_reading_launch_configuration_file._1"), new String[]{e.toString()}), e); //$NON-NLS-1$					
-			} catch (ParserConfigurationException e) {
-				throw createDebugException(MessageFormat.format(DebugCoreMessages.getString("LaunchManager.{0}_occurred_while_reading_launch_configuration_file._1"), new String[]{e.toString()}), e); //$NON-NLS-1$					
-			} catch (IOException e) {
-				throw createDebugException(MessageFormat.format(DebugCoreMessages.getString("LaunchManager.{0}_occurred_while_reading_launch_configuration_file._1"), new String[]{e.toString()}), e); //$NON-NLS-1$					
-			} finally {
-				if (stream != null) {
-					try {
-						stream.close();
-					} catch (IOException e) {
-						throw createDebugException(MessageFormat.format(DebugCoreMessages.getString("LaunchManager.{0}_occurred_while_reading_launch_configuration_file._1"), new String[]{e.toString()}), e); //$NON-NLS-1$					
-					}
-				}
-			}
-	
-		} else {
-			throw createDebugException(DebugCoreMessages.getString("LaunchManager.Launch_configuration_does_not_exist._6"), null); //$NON-NLS-1$
-		}
-
-		return info;
-	}	
-
-	/**
-	 * Return a LaunchConfigurationInfo object initialized from XML contained in
-	 * the specified stream.  Simply pass out any exceptions encountered so that
-	 * caller can deal with them.  This is important since caller may need access to the
-	 * actual exception.
-	 */
-	protected CBuildConfigInfo createInfoFromXML(InputStream stream)
-		throws CoreException, ParserConfigurationException, IOException, SAXException {
-		Element root = null;
-		DocumentBuilder parser = DocumentBuilderFactory.newInstance().newDocumentBuilder();
-		root = parser.parse(new InputSource(stream)).getDocumentElement();
-		CBuildConfigInfo info = new CBuildConfigInfo();
-		info.initializeFromXML(root);
-		return info;
-	}
-
-	/**
-	 * Return an instance of DebugException containing the specified message and Throwable.
-	 */
-	protected DebugException createDebugException(String message, Throwable throwable) {
-		return new DebugException(
-					new Status(
-					 Status.ERROR, DebugPlugin.getUniqueIdentifier(),
-					 DebugException.REQUEST_FAILED, message, throwable 
-					)
-				);
-	}
-
-	/**
-	 * Finds and returns all configurations in the given
-	 * container (and subcontainers)
-	 * 
-	 * @param container the container to search
-	 * @exception CoreException an exception occurs traversing
-	 *  the container.
-	 * @return all configurations in the given container
-	 */
-	protected List findConfigurations(IContainer container, String extension) throws CoreException {
-		List list = new ArrayList(10);
-		if (container instanceof IProject && !((IProject)container).isOpen()) {
-			return list;
-		}
-		searchForFiles(container, extension, list);
-		Iterator iter = list.iterator();
-		List configs = new ArrayList(list.size());
-		while (iter.hasNext()) {
-			IFile file = (IFile)iter.next();
-			configs.add(getConfiguration(file));
-		}
-		return configs;
-	}
-	
-	/**
-	 * Recursively searches the given container for files with the given
-	 * extension.
-	 * 
-	 * @param container the container to search in
-	 * @param extension the file extension being searched for
-	 * @param list the list to add the matching files to
-	 * @exception CoreException if an exception occurs traversing
-	 *  the container
-	 */
-	protected void searchForFiles(IContainer container, String extension, List list) throws CoreException {
-		IResource[] members = container.members();
-		for (int i = 0; i < members.length; i++) {
-			if (members[i] instanceof IContainer) {
-				if (members[i] instanceof IProject && !((IProject)members[i]) .isOpen()) {
-					continue;
-				}
-				searchForFiles((IContainer)members[i], extension, list);
-			} else if (members[i] instanceof IFile) {
-				IFile file = (IFile)members[i];
-				if (extension.equalsIgnoreCase(file.getFileExtension())) {
-					list.add(file);
-				}
-			}
-		}
-	}
-
-	/**
-	 * Returns whether the given String is composed solely of digits
-	 */
-	private boolean isNumber(String string) {
-		int numChars= string.length();
-		if (numChars == 0) {
-			return false;
-		}
-		for (int i= 0; i < numChars; i++) {
-			if (!Character.isDigit(string.charAt(i))) {
-				return false;
-			}
-		}
-		return true;
-	}
-
-	/**
-	 * Returns whether the given configuration passes a basic
-	 * integritiy test.
-	 * 
-	 * @param config the configuration to verify
-	 * @return whether the config meets basic integrity constraints
-	 */
-	protected boolean isValid(ICBuildConfig config) {
-		// TODO: Tests?
-		return (null != config);
-	}
-}
-
Index: build/org/eclipse/cdt/core/builder/model/internal/CBuildConfigWorkingCopy.java
===================================================================
RCS file: build/org/eclipse/cdt/core/builder/model/internal/CBuildConfigWorkingCopy.java
diff -N build/org/eclipse/cdt/core/builder/model/internal/CBuildConfigWorkingCopy.java
--- build/org/eclipse/cdt/core/builder/model/internal/CBuildConfigWorkingCopy.java	17 Feb 2003 19:10:36 -0000	1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,490 +0,0 @@
-/**********************************************************************
- * Copyright (c) 2002,2003 Timesys 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: 
- * Timesys - Initial API and implementation
- **********************************************************************/
-
-package org.eclipse.cdt.core.builder.model.internal;
-
-import java.io.ByteArrayInputStream;
-import java.io.File;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.text.MessageFormat;
-import java.util.List;
-import java.util.Map;
-
-import org.eclipse.cdt.core.builder.model.ICBuildConfig;
-import org.eclipse.cdt.core.builder.model.ICBuildConfigWorkingCopy;
-import org.eclipse.core.resources.IContainer;
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IWorkspaceRunnable;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.debug.core.DebugException;
-import org.eclipse.debug.core.DebugPlugin;
-import org.eclipse.debug.internal.core.DebugCoreMessages;
-
-/**
- * @author sam.robb
- */
-public class CBuildConfigWorkingCopy extends CBuildConfig implements ICBuildConfigWorkingCopy {
-
-	/**
-	 * Handle of original launch configuration this
-	 * working copy is based on
-	 */
-	private CBuildConfig fOriginal;
-	
-	/**
-	 * Working copy of attributes.
-	 */
-	private CBuildConfigInfo fInfo;
-	
-	/**
-	 * Whether this working copy has been modified since
-	 * it was created
-	 */
-	private boolean fDirty = false;
-	
-	/**
-	 * The name for this configuration.
-	 */
-	private String fName;
-	
-	/**
-	 * Indicates whether this working copy has been explicitly renamed.
-	 */
-	private boolean fRenamed = false;
-	
-	/**
-	 * Suppress change notification until created
-	 */
-	private boolean fSuppressChange = true;
-	
-	/**
-	 * The container this working copy will be
-	 * stored in when saved.
-	 */
-	private IContainer fContainer;
-
-	/**
-	 * Constructs a working copy of the specified launch 
-	 * configuration.
-	 * 
-	 * @param original launch configuration to make
-	 *  a working copy of
-	 * @exception CoreException if unable to initialize this
-	 *  working copy's attributes based on the original configuration
-	 */
-	protected CBuildConfigWorkingCopy(CBuildConfig original) throws CoreException {
-		super(original.getLocation());
-		setName(original.getName());
-		copyFrom(original);
-		setOriginal(original);
-		fSuppressChange = false;
-	}
-	
-	/**
-	 * Constructs a copy of the specified launch 
-	 * configuration, with the given (new) name.
-	 * 
-	 * @param original launch configuration to make
-	 *  a working copy of
-	 * @param name the new name for the copy of the launch
-	 *  configuration
-	 * @exception CoreException if unable to initialize this
-	 *  working copy's attributes based on the original configuration
-	 */
-	protected CBuildConfigWorkingCopy(CBuildConfig original, String name) throws CoreException {
-		super(original.getLocation());
-		copyFrom(original);
-		setName(name);
-		fSuppressChange = false;
-	}
-	
-	/**
-	 * Constructs a new working copy to be created in the specified
-	 * location.
-	 * 
-	 * @param container the container that the configuration will be created in
-	 *  or <code>null</code> if to be local
-	 * @param name the name of the new launch configuration
-	 * @param type the type of this working copy
-	 */
-	protected CBuildConfigWorkingCopy(IContainer container, String name) {
-		super((IPath)null);
-		setName(name);
-		setInfo(new CBuildConfigInfo());
-		setContainer(container);
-		fSuppressChange = false;
-	}
-
-	/**
-	 * @see ICBuildConfigWorkingCopy#isDirty()
-	 */
-	public boolean isDirty() {
-		return fDirty;
-	}
-
-	/**
-	 * @see ICBuildConfigWorkingCopy#doSave()
-	 */
-	public ICBuildConfig doSave() throws CoreException {
-		if (isDirty()) {
-			IWorkspaceRunnable wr = new IWorkspaceRunnable() {
-				public void run(IProgressMonitor pm) throws CoreException {
-					// write the new file
-					CBuildConfigWorkingCopy.this.writeNewFile();
-					// delete the old file if this is not a new configuration
-					// or the file was renamed/moved
-					if (!CBuildConfigWorkingCopy.this.isNew()) {
-						if (CBuildConfigWorkingCopy.this.isMoved()) {
-							CBuildConfigWorkingCopy.this.getOriginal().delete();
-						}
-					}
-					resetDirty();
-				}
-			};
-			
-			ResourcesPlugin.getWorkspace().run(wr, null);
-		}
-		
-		return new CBuildConfig(getLocation());		
-	}
-	
-	/**
-	 * Writes the new configuration information to a file.
-	 * 
-	 * @exception CoreException if writing the file fails
-	 */
-	protected void writeNewFile() throws CoreException {
-		String xml = null;
-		try {
-			xml = getInfo().getAsXML();
-		} catch (IOException e) {
-			throw new DebugException(
-				new Status(
-				 Status.ERROR, DebugPlugin.getUniqueIdentifier(),
-				 DebugException.REQUEST_FAILED, MessageFormat.format(DebugCoreMessages.getString("CBuildConfigWorkingCopy.{0}_occurred_generating_launch_configuration_XML._1"), new String[]{e.toString()}), null //$NON-NLS-1$
-				)
-			);					
-		}
-		
-		if (isLocal()) {
-			// use java.io to update configuration file
-			try {
-				boolean added = false;
-				File file = getLocation().toFile();
-				File dir = getLocation().removeLastSegments(1).toFile();
-				dir.mkdirs();
-				if (!file.exists()) {
-					added = true;
-					file.createNewFile();
-				}
-				FileOutputStream stream = new FileOutputStream(file);
-				stream.write(xml.getBytes("UTF8")); //$NON-NLS-1$
-				stream.close();
-				if (added) {
-					getBuildConfigurationManager().configurationAdded(new CBuildConfig(getLocation()));
-				} else {
-					getBuildConfigurationManager().configurationChanged(new CBuildConfig(getLocation()));
-				}
-			} catch (IOException e) {
-				throw new DebugException(
-					new Status(
-					 Status.ERROR, DebugPlugin.getUniqueIdentifier(),
-					 DebugException.REQUEST_FAILED, MessageFormat.format(DebugCoreMessages.getString("CBuildConfigWorkingCopy.{0}_occurred_generating_launch_configuration_XML._1"), new String[]{e.toString()}), null //$NON-NLS-1$
-					)
-				);				
-			}
-		} else {
-			// use resource API to update configuration file
-			IFile file = getFile();
-			IContainer dir = file.getParent();
-			if (!dir.exists()) {
-				throw new DebugException(
-					new Status(
-					 Status.ERROR, DebugPlugin.getUniqueIdentifier(),
-					 DebugException.REQUEST_FAILED, DebugCoreMessages.getString("CBuildConfigWorkingCopy.Specified_container_for_launch_configuration_does_not_exist_2"), null //$NON-NLS-1$
-					)
-				);				
-			}
-			ByteArrayInputStream stream = new ByteArrayInputStream(xml.getBytes());
-			if (!file.exists()) {
-				file.create(stream, false, null);
-				//getLaunchManager().CBuildConfigurationAdded(new CBuildConfig(getLocation()));
-			} else {
-				file.setContents(stream, false, false, null);
-				//getLaunchManager().CBuildConfigurationChanged(new CBuildConfig(getLocation()));
-			}
-		}		
-	}
-
-	/**
-	 * @see ICBuildConfigWorkingCopy#setAttribute(String, int)
-	 */
-	public void setAttribute(String attributeName, int value) {
-		getInfo().setAttribute(attributeName, new Integer(value));
-		setDirty();
-	}
-
-	/**
-	 * @see ICBuildConfigWorkingCopy#setAttribute(String, String)
-	 */
-	public void setAttribute(String attributeName, String value) {
-		getInfo().setAttribute(attributeName, value);
-		setDirty();
-	}
-
-	/**
-	 * @see ICBuildConfigWorkingCopy#setAttribute(String, boolean)
-	 */
-	public void setAttribute(String attributeName, boolean value) {
-		getInfo().setAttribute(attributeName, new Boolean(value));
-		setDirty();	
-	}
-
-	/**
-	 * @see ICBuildConfigWorkingCopy#setAttribute(String, List)
-	 */
-	public void setAttribute(String attributeName, List value) {
-		getInfo().setAttribute(attributeName, value);
-		setDirty();
-	}
-
-	/**
-	 * @see ICBuildConfigWorkingCopy#setAttribute(String, Map)
-	 */
-	public void setAttribute(String attributeName, Map value) {
-		getInfo().setAttribute(attributeName, value);
-		setDirty();
-	}
-
-	/**
-	 * @see ICBuildConfigWorkingCopy#getOriginal()
-	 */
-	public ICBuildConfig getOriginal() {
-		return fOriginal;
-	}
-	
-	/**
-	 * Sets the launch configuration this working copy
-	 * is based on. Initializes the attributes of this
-	 * working copy to the current values of the given
-	 * configuration.
-	 * 
-	 * @param originl the launch configuration this working
-	 *  copy is based on.
-	 * @exception CoreException if unable to initialize this
-	 *  working copy based on the original's current attribute
-	 *  set
-	 */
-	private void copyFrom(CBuildConfig original) throws CoreException {
-		CBuildConfigInfo info = original.getInfo();
-		setInfo(info.getCopy());
-		setContainer(original.getContainer());
-		resetDirty();
-	}
-	
-	/**
-	 * Sets the launch configuration this working copy
-	 * is based on.
-	 * 
-	 * @param originl the launch configuration this working
-	 *  copy is based on.
-	 */
-	private void setOriginal(CBuildConfig original) {
-		fOriginal = original;
-	}	
-	
-	/**
-	 * Sets the working copy info object for this working copy.
-	 * 
-	 * @param info a copy of attributes from this working copy's
-	 * 	original launch configuration
-	 */
-	protected void setInfo(CBuildConfigInfo info) {
-		fInfo = info;
-	}
-
-	/**
-	 * @see ICBuildConfig#isWorkingCopy()
-	 */
-	public boolean isWorkingCopy() {
-		return true;
-	}
-	
-	/**
-	 * A working copy keeps a local info object that is not
-	 * cached with the launch manager.
-	 * 
-	 * @see CBuildConfig#getInfo()
-	 */
-	protected CBuildConfigInfo getInfo() {
-		return fInfo;
-	}
-	
-	/**
-	 * Sets this working copy's state to dirty.
-	 * Notifies listeners that this working copy has
-	 * changed.
-	 */
-	private void setDirty() {
-		fDirty = true;
-		if (!suppressChangeNotification()) {
-			getBuildConfigurationManager().configurationChanged(this);
-		}	
-	}
-	
-	/**
-	 * Sets this working copy's state to not dirty.
-	 */
-	private void resetDirty() {
-		fDirty = false;
-	}	
-		
-	/**
-	 * @see ICBuildConfigWorkingCopy#rename(String)
-	 */
-	public void rename(String name) {
-		if (!getName().equals(name)) {
-			setName(name);
-			fRenamed = isNew() || !(getOriginal().getName().equals(name));
-		}
-	}
-
-	/**
-	 * Sets the new name for this configuration.
-	 * 
-	 * @param name the new name for this configuration
-	 */
-	private void setName(String name) {
-		fName = name;
-		setDirty();
-	}
-	
-	/**
-	 * @see ICBuildConfig#getName()
-	 */
-	public String getName() {
-		return fName;
-	}
-	
-	/**
-	 * @see ICBuildConfig#isLocal()
-	 */
-	public boolean isLocal() {
-		return getContainer() == null;
-	}	
-	
-	/**
-	 * Returns the location this launch configuration will reside at
-	 * when saved.
-	 * 
-	 * @see ICBuildConfig#getLocation()
-	 */
-	public IPath getLocation() {
-		if (isMoved()) {
-			IPath path = getContainer().getLocation();
-			path = path.append(getName() + "." + BUILD_CONFIGURATION_FILE_EXTENSION); //$NON-NLS-1$
-			return path;
-		} else {
-			return getOriginal().getLocation();
-		}
-	}
-	
-	/**
-	 * Returns whether this working copy is new, or is a
-	 * working copy of another launch configuration.
-	 * 
-	 * @return whether this working copy is new, or is a
-	 *  working copy of another launch configuration
-	 */
-	protected boolean isNew() {
-		return getOriginal() == null;
-	}
-	
-	/**
-	 * Returns whether this working copy is new or if its
-	 * location has changed from that of its original.
-	 * 
-	 * @return whether this working copy is new or if its
-	 * location has changed from that of its original
-	 */
-	protected boolean isMoved() {
-		if (isNew() || fRenamed) {
-			return true;
-		}
-		IContainer newContainer = getContainer();
-		IContainer originalContainer = ((CBuildConfig)getOriginal()).getContainer();
-		if (newContainer == originalContainer) {
-			return false;
-		}
-		if (newContainer == null) {
-			return !originalContainer.equals(newContainer);
-		} else {
-			return !newContainer.equals(originalContainer);
-		}
-	}		
-	
-	/**
-	 * A working copy cannot generate a memento.
-	 * 
-	 * @see ICBuildConfig#getMemento()
-	 */
-	public String getMemento() {
-		return null;
-	}	
-	
-	/**
-	 * Returns whether change notification should be
-	 * suppressed
-	 */
-	protected boolean suppressChangeNotification() {
-		return fSuppressChange;
-	}
-	
-	/**
-	 * @see ICBuildConfigWorkingCopy#setContainer(IContainer)
-	 */
-	public void setContainer(IContainer container) {
-		if (container == fContainer) {
-			return;
-		}
-		if (container != null) {
-			if (container.equals(fContainer)) {
-				return;
-			}
-		} else {
-			if (fContainer.equals(container)) {
-				return;
-			}
-		}
-		fContainer = container;
-		setDirty();
-	}
-	
-	/**
-	 * Returns the container this working copy will be
-	 * stored in when saved, or <code>null</code> if
-	 * this working copy is local.
-	 * 
-	 * @return the container this working copy will be
-	 *  stored in when saved, or <code>null</code> if
-	 *  this working copy is local
-	 */
-	protected IContainer getContainer() {
-		return fContainer;
-	}	
-
-
-}
Index: build/org/eclipse/cdt/core/builder/util/CCygwinFilesystem.java
===================================================================
RCS file: build/org/eclipse/cdt/core/builder/util/CCygwinFilesystem.java
diff -N build/org/eclipse/cdt/core/builder/util/CCygwinFilesystem.java
--- build/org/eclipse/cdt/core/builder/util/CCygwinFilesystem.java	17 Feb 2003 19:10:36 -0000	1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,125 +0,0 @@
-/**********************************************************************
- * Copyright (c) 2002,2003 Timesys 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: 
- * Timesys - Initial API and implementation
- **********************************************************************/
-
-package org.eclipse.cdt.core.builder.util;
-
-import java.io.ByteArrayOutputStream;
-import java.io.File;
-import java.io.IOException;
-
-import org.eclipse.cdt.internal.core.ProcessClosure;
-import org.eclipse.cdt.utils.spawner.ProcessFactory;
-
-/**
- * Performs file path translation on a Windows + Cygwin system.
- * <p>
- * This allows for translation between "native" Windows path
- * names and Cygwin style path names.
- */
-public class CCygwinFilesystem implements IFilesystem {
-
-	private static String CONVERT_CMD = "cygpath"; //$NON-NLS-1$
-	private static String CONVERT_TO_UNIX = "-u"; //$NON-NLS-1$
-	private static String CONVERT_TO_NATIVE = "-w"; //$NON-NLS-1$
-
-	private String fHome;
-
-	public CCygwinFilesystem() {
-		super();
-		fHome =
-			getNativePath(IFilesystem.FILESYSTEM_ROOT)
-				+ IFilesystem.FILESYSTEM_ROOT;
-	}
-
-	/**
-	 * Helper function for converting native (Windows) paths to Unix paths,
-	 * and vice versa.
-	 *
-	 * @param path the path to covert.
-	 * @param cmdFlags	how to convert the path. Supported values for are
-	 * CONVERT_TO_UNIX and CONVERT_TO_NATIVE.
-	 */
-	private String convertPath(String path, String cmdFlags) {
-
-		ByteArrayOutputStream stderr = new ByteArrayOutputStream();
-		ByteArrayOutputStream stdout = new ByteArrayOutputStream();
-		String[] cmds = { CONVERT_CMD, cmdFlags, path };
-		String newPath = path;
-
-		// In the event that cygpath is not found, or fails for some reason,
-		// this function will return a Cygwinized/Javaized version of the
-		// path (ex, "C:\foo\bar" will become "C:/foo/bar").
-
-		try {
-			ProcessFactory pf = ProcessFactory.getFactory();
-			Process pid = pf.exec(cmds);
-			ProcessClosure pc = new ProcessClosure(pid, stdout, stderr);
-
-			pc.runBlocking();
-
-			newPath = stdout.toString().trim();
-		} catch (IOException e) {
-			e.printStackTrace();
-		}
-
-		return newPath.replace(PATHSEP_WINDOWS, PATHSEP_CYGWIN);
-	}
-
-	/**
-	 * @see org.eclipse.cdt.core.builder.util.IFilesystem#getRoot()
-	 */
-	public String getRoot() {
-		return fHome;
-	}
-
-	/**
-	 * @see org.eclipse.cdt.core.builder.util.IFilesystem#getNativePath(String)
-	 */
-	public String getNativePath(String path) {
-		return convertPath(path, CONVERT_TO_NATIVE);
-	}
-
-	/**
-	 * @see org.eclipse.cdt.core.builder.util.IFilesystem#getNativePath(File)
-	 */
-	public String getNativePath(File path) {
-		return getNativePath(path.toString());
-	}
-
-	/**
-	 * @see org.eclipse.cdt.core.builder.util.IFilesystem#getUnixPath(String)
-	 */
-	public String getUnixPath(String path) {
-
-		path = convertPath(path, CONVERT_TO_UNIX);
-
-		// Make sure there are no spaces in the path and if there are, escape them.
-		String subString = new String(""); //$NON-NLS-1$
-		int len = 0;
-		int begin = 0;
-		while ((len = path.indexOf(" ")) >= 0) { //$NON-NLS-1$
-			subString += path.substring(begin, len);
-			subString += "\\ "; //$NON-NLS-1$
-			path = path.substring(len + 1);
-		}
-		subString += path;
-
-		return subString;
-	}
-
-	/**
-	 * @see org.eclipse.cdt.core.builder.util.IFilesystem#getUnixPath(File)
-	 */
-	public String getUnixPath(File path) {
-		return getUnixPath(path.toString());
-	}
-
-}
Index: build/org/eclipse/cdt/core/builder/util/CUnixFilesystem.java
===================================================================
RCS file: build/org/eclipse/cdt/core/builder/util/CUnixFilesystem.java
diff -N build/org/eclipse/cdt/core/builder/util/CUnixFilesystem.java
--- build/org/eclipse/cdt/core/builder/util/CUnixFilesystem.java	17 Feb 2003 19:10:36 -0000	1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,58 +0,0 @@
-/**********************************************************************
- * Copyright (c) 2002,2003 Timesys 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: 
- * Timesys - Initial API and implementation
- **********************************************************************/
-
-package org.eclipse.cdt.core.builder.util;
-
-import java.io.File;
-
-/**
- * Performs file path translation on a Unix system.
- * <p>
- * This is essentially uninteresting, as the whole purpose of the filesystem
- * abstraction is to provide for some minimal support for Unix-y file paths
- * under Windows + Cygwin.
- */
-public class CUnixFilesystem implements IFilesystem {
-	/**
-	 * @see org.eclipse.cdt.core.builder.util.IFilesystem#getRoot()
-	 */
-	public String getRoot() {
-		return IFilesystem.FILESYSTEM_ROOT;
-	}
-
-	/**
-	 * @see org.eclipse.cdt.core.builder.util.IFilesystem#getNativePath(String)
-	 */
-	public String getNativePath(String path) {
-		return new String(path);
-	}
-
-	/**
-	 * @see org.eclipse.cdt.core.builder.util.IFilesystem#getNativePath(File)
-	 */
-	public String getNativePath(File path) {
-		return path.toString();
-	}
-
-	/**
-	 * @see org.eclipse.cdt.core.builder.util.IFilesystem#getUnixPath(String)
-	 */
-	public String getUnixPath(String path) {
-		return new String(path);
-	}
-
-	/**
-	 * @see org.eclipse.cdt.core.builder.util.IFilesystem#getUnixPath(File)
-	 */
-	public String getUnixPath(File path) {
-		return path.toString();
-	}
-}
Index: build/org/eclipse/cdt/core/builder/util/CUtil.java
===================================================================
RCS file: build/org/eclipse/cdt/core/builder/util/CUtil.java
diff -N build/org/eclipse/cdt/core/builder/util/CUtil.java
--- build/org/eclipse/cdt/core/builder/util/CUtil.java	17 Feb 2003 19:10:36 -0000	1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,50 +0,0 @@
-/**********************************************************************
- * Copyright (c) 2002,2003 Timesys 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: 
- * Timesys - Initial API and implementation
- **********************************************************************/
-
-package org.eclipse.cdt.core.builder.util;
-
-/**
- * @author sam.robb
- * 
- * Collection of generic utility functions.
- */
-public class CUtil {
-
-	/**
-	 * Given a name, this function will decide whether the
-	 * name conforms to rules for naming valid C identifiers.
-	 */
-	public static boolean isValidCIdentifier(String name) {
-
-		// any sequence of letters, digits, or underscores,
-		// which begins with a letter or underscore
-
-		if ((name == null) || (name.length() < 1)) {
-			return false;
-		}
-
-		char c = name.charAt(0);
-
-		if ((c != '_') && !Character.isLetter(c)) {
-			return false;
-		}
-
-		for (int i = 1; i < name.length(); i++) {
-			c = name.charAt(i);
-			if ((c != '_') && !Character.isLetterOrDigit(c)) {
-				return false;
-			}
-		}
-
-		return true;
-	}
-
-}
Index: build/org/eclipse/cdt/core/builder/util/Filesystem.java
===================================================================
RCS file: build/org/eclipse/cdt/core/builder/util/Filesystem.java
diff -N build/org/eclipse/cdt/core/builder/util/Filesystem.java
--- build/org/eclipse/cdt/core/builder/util/Filesystem.java	17 Feb 2003 19:10:36 -0000	1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,161 +0,0 @@
-/**********************************************************************
- * Copyright (c) 2002,2003 Timesys 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: 
- * Timesys - Initial API and implementation
- **********************************************************************/
-
-package org.eclipse.cdt.core.builder.util;
-
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
-
-import org.eclipse.core.internal.runtime.Assert;
-
-/**
- * Singleton that wraps the concept of the current OS's
- * filesystem in a way that allows us to work properly
- * under Cygwin.
- */
-public class Filesystem {
-	
-	private static IFilesystem fInstance;
-
-	/**
-	 * Create the IFilesystem instance appropriate for the current OS.
-	 * 
-	 * Right now, this is based off of the speratorChar reported by
-	 * java.io.File; there is probably a better way to deal with this.
-	 */
-	static {
-		// init to null, update with class reference if we can
-		// otherwise leave null to signal that we don't have a valid file system.			
-		if (File.separatorChar == IFilesystem.FILESYSTEM_ROOT.charAt(0)) {
-			fInstance = new CUnixFilesystem();
-		} else {
-			fInstance = new CCygwinFilesystem();
-		}
-	}
-
-	private static IFilesystem getInstance() {
-		if (fInstance == null) {
-			throw new FileSystemException ("Problems encountered while searching for your file system.");
-		}
-		return fInstance;
-	}
-
-	public static boolean isValid() {
-		return (fInstance != null);
-	}
-		
-	public static class FileSystemException extends Error {
-		FileSystemException (String s) {
-			super(s);
-		}
-	}
-
-	/**
-	 * Private constructor to prevent instatiation.
-	 * 
-	 * All members of this class are static, and intended to be accessed
-	 * via "Filesystem.[method_name]".
-	 */
-	private Filesystem() {
-	}
-
-	/**
-	 * @see org.eclipse.cdt.core.builder.util.IFilesystem#getRoot()
-	 */
-	public static String getRoot() {
-		return getInstance().getRoot();
-	}
-
-	/**
-	 * @see org.eclipse.cdt.core.builder.util.IFilesystem#getNativePath(String)
-	 */
-	public static String getNativePath(String path)  {
-		return getInstance().getNativePath(path);
-	}
-
-	/**
-	 * @see org.eclipse.cdt.core.builder.util.IFilesystem#getNativePath(File)
-	 */
-	public static String getNativePath(File path)  {
-		return getInstance().getNativePath(path);
-	}
-
-	/**
-	 * @see org.eclipse.cdt.core.builder.util.IFilesystem#getUnixPath(String)
-	 */
-	public static String getUnixPath(String path)  {
-		return getInstance().getUnixPath(path);
-	}
-
-	/**
-	 * @see org.eclipse.cdt.core.builder.util.IFilesystem#getUnixPath(File)
-	 */
-	public static String getUnixPath(File path)  {
-		return getInstance().getUnixPath(path);
-	}
-
-	/**
-	 * Copy a file from sourceFile to destFile.  Performs a binary file copy,
-	 * reading data from sourceFile as a byte stream, and writing it to destFile
-	 * as a byte stream.
-	 * 
-	 * @param sourceFile File to copy.
-	 * @param destFile Where to copy the file to.
-	 * @param replaceIfExists If true, if destFile exists, it is replaced.
-	 * @return True if the file was copied; false otherwise.
-	 */
-	public static boolean copyFile(File sourceFile, File destFile, boolean replaceIfExists) {
-		Assert.isNotNull(sourceFile);
-		Assert.isNotNull(destFile);
-
-		if (!sourceFile.exists()) {
-			return false;
-		}
-
-		if (sourceFile.equals(destFile)) {
-			return false;
-		}
-
-		if (replaceIfExists && destFile.exists()) {
-			destFile.delete();
-		}
-		
-		if (destFile.exists()) {
-			return false;
-		}
-
-	    FileInputStream 	fis = null;
-	    FileOutputStream	fos = null;
-	    byte[]				buf = new byte[1024];
-	    int 				i 	= 0;
-	    
-		try {
-			fis = new FileInputStream(sourceFile);
-	    	fos = new FileOutputStream(destFile);
-		    
-		    while(-1 != (i = fis.read(buf))) {
-		      fos.write(buf, 0, i);
-			}
-			
-		    fos.close();
-		    fis.close();
-		} catch (Exception e) {
-			e.printStackTrace();
-			if (destFile.exists()) {
-				destFile.delete();
-			}
-			return false;
-		}
-		
-		return true;
-	}
-}
Index: build/org/eclipse/cdt/core/builder/util/IFilesystem.java
===================================================================
RCS file: build/org/eclipse/cdt/core/builder/util/IFilesystem.java
diff -N build/org/eclipse/cdt/core/builder/util/IFilesystem.java
--- build/org/eclipse/cdt/core/builder/util/IFilesystem.java	17 Feb 2003 19:10:36 -0000	1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,66 +0,0 @@
-/**********************************************************************
- * Copyright (c) 2002,2003 Timesys 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: 
- * Timesys - Initial API and implementation
- **********************************************************************/
-
-package org.eclipse.cdt.core.builder.util;
-
-import java.io.File;
-
-/**
- * Abstracts information about a filesystem in order to allow
- * translation between native/unix pathnames.
- */
-public interface IFilesystem {
-
-	public static String	FILESYSTEM_ROOT = "/"; //$NON-NLS-1$
-	public static char	PATHSEP_WINDOWS = '\\'; //$NON-NLS-1$
-	public static char	PATHSEP_CYGWIN = '\\'; //$NON-NLS-1$
-
-	/**
-	 * Get the root directory for the filesystem.
-	 * 
-	 * The root directory is returned in native filesystem format
-	 * (ex, "C:/cygwin/" on Windows, "/" on Unix.)  The returned
-	 * string is guaranteed to have a trailing path seperator.
-	 */
-	public String getRoot();
-
-	/**
-	 * Convert the provided path into a native path.
-	 * 
-	 * @param path path to convert.
-	 * @return native representation of path.
-	 */
-	public String getNativePath(String path);
-
-	/**
-	 * Convert the provided path into a native path.
-	 * 
-	 * @param path path to convert.
-	 * @return native representation of path.
-	 */
-	public String getNativePath(File path);
-
-	/**
-	 * Convert the provided path into a unix path.
-	 * 
-	 * @param path path to convert.
-	 * @return unix representation of path.
-	 */
-	public String getUnixPath(String path);
-	
-	/**
-	 * Convert the provided path into a unix path.
-	 * 
-	 * @param path path to convert.
-	 * @return unix representation of path.
-	 */
-	public String getUnixPath(File path);
-}
Index: build/org/eclipse/cdt/gnu/tools/CConfigProviderDebug.java
===================================================================
RCS file: build/org/eclipse/cdt/gnu/tools/CConfigProviderDebug.java
diff -N build/org/eclipse/cdt/gnu/tools/CConfigProviderDebug.java
--- build/org/eclipse/cdt/gnu/tools/CConfigProviderDebug.java	17 Feb 2003 19:13:07 -0000	1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,37 +0,0 @@
-/**********************************************************************
- * Copyright (c) 2002,2003 Timesys 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: 
- * Timesys - Initial API and implementation
- **********************************************************************/
-
-package org.eclipse.cdt.gnu.tools;
-
-import org.eclipse.cdt.core.builder.model.ICBuildConfigProvider;
-import org.eclipse.cdt.core.builder.model.ICBuildConfigWorkingCopy;
-import org.eclipse.cdt.core.builder.model.ICPosixBuildConstants;
-
-/**
- * Default implementation of a "Debug" build configuration
- * provider for GNU toolchains.
- */
-public class CConfigProviderDebug implements ICBuildConfigProvider {
-
-	/**
-	 * @see org.eclipse.cdt.core.builder.model.ICBuildConfigProvider#setDefaults(ICBuildConfigWorkingCopy)
-	 */
-	public void setDefaults(ICBuildConfigWorkingCopy config) {
-		config.setAttribute(ICPosixBuildConstants.CC_ENABLE_DEBUG, true);
-		config.setAttribute(ICPosixBuildConstants.CC_WARN_ALL, true);
-		config.setAttribute(ICPosixBuildConstants.LD_STRIP, false);
-		config.setAttribute(ICPosixBuildConstants.CC_ENABLE_PROFILE, false);
-		config.setAttribute(ICPosixBuildConstants.CC_ENABLE_OPTIMIZE, false);
-		config.setAttribute(ICPosixBuildConstants.CC_OPTIMZE_LEVEL,
-							ICPosixBuildConstants.CC_OPTIMIZE_NONE);
-	}
-
-}
Index: build/org/eclipse/cdt/gnu/tools/CConfigProviderProfile.java
===================================================================
RCS file: build/org/eclipse/cdt/gnu/tools/CConfigProviderProfile.java
diff -N build/org/eclipse/cdt/gnu/tools/CConfigProviderProfile.java
--- build/org/eclipse/cdt/gnu/tools/CConfigProviderProfile.java	17 Feb 2003 19:13:07 -0000	1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,40 +0,0 @@
-/**********************************************************************
- * Copyright (c) 2002,2003 Timesys 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: 
- * Timesys - Initial API and implementation
- **********************************************************************/
-
-package org.eclipse.cdt.gnu.tools;
-
-import org.eclipse.cdt.core.builder.model.ICBuildConfigProvider;
-import org.eclipse.cdt.core.builder.model.ICBuildConfigWorkingCopy;
-import org.eclipse.cdt.core.builder.model.ICPosixBuildConstants;
-
-/**
- * Default implementation of a "Profile" build configuration
- * provider for GNU toolchains.
- */
-public class CConfigProviderProfile implements ICBuildConfigProvider {
-
-	/**
-	 * @see org.eclipse.cdt.core.builder.model.ICBuildConfigProvider#setDefaults(ICBuildConfigWorkingCopy)
-	 */
-	public void setDefaults(ICBuildConfigWorkingCopy config) {
-
-		config.setAttribute(ICPosixBuildConstants.CC_ENABLE_DEBUG, false);
-		config.setAttribute(ICPosixBuildConstants.CC_WARN_ALL, true);
-		config.setAttribute(ICPosixBuildConstants.LD_STRIP, true);
-		config.setAttribute(ICPosixBuildConstants.CC_ENABLE_PROFILE, true);
-		config.setAttribute(ICPosixBuildConstants.CC_ENABLE_OPTIMIZE, true);
-		config.setAttribute(ICPosixBuildConstants.CC_OPTIMZE_LEVEL,
-							ICPosixBuildConstants.CC_OPTIMIZE_FULL);
-
-
-	}
-
-}
Index: build/org/eclipse/cdt/gnu/tools/CConfigProviderRelease.java
===================================================================
RCS file: build/org/eclipse/cdt/gnu/tools/CConfigProviderRelease.java
diff -N build/org/eclipse/cdt/gnu/tools/CConfigProviderRelease.java
--- build/org/eclipse/cdt/gnu/tools/CConfigProviderRelease.java	17 Feb 2003 19:13:07 -0000	1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,39 +0,0 @@
-/**********************************************************************
- * Copyright (c) 2002,2003 Timesys 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: 
- * Timesys - Initial API and implementation
- **********************************************************************/
-
-package org.eclipse.cdt.gnu.tools;
-
-import org.eclipse.cdt.core.builder.model.ICBuildConfigProvider;
-import org.eclipse.cdt.core.builder.model.ICBuildConfigWorkingCopy;
-import org.eclipse.cdt.core.builder.model.ICPosixBuildConstants;
-
-/**
- * Default implementation of a "Release" build configuration
- * provider for GNU toolchains.
- */
-public class CConfigProviderRelease implements ICBuildConfigProvider {
-
-	/**
-	 * @see org.eclipse.cdt.core.builder.model.ICBuildConfigProvider#setDefaults(ICBuildConfigWorkingCopy)
-	 */
-	public void setDefaults(ICBuildConfigWorkingCopy config) {
-
-		config.setAttribute(ICPosixBuildConstants.CC_ENABLE_DEBUG, false);
-		config.setAttribute(ICPosixBuildConstants.CC_WARN_ALL, true);
-		config.setAttribute(ICPosixBuildConstants.LD_STRIP, true);
-		config.setAttribute(ICPosixBuildConstants.CC_ENABLE_PROFILE, false);
-		config.setAttribute(ICPosixBuildConstants.CC_ENABLE_OPTIMIZE, true);
-		config.setAttribute(ICPosixBuildConstants.CC_OPTIMZE_LEVEL,
-							ICPosixBuildConstants.CC_OPTIMIZE_FULL);
-
-	}
-
-}
Index: build/org/eclipse/cdt/gnu/tools/CGnuTool.java
===================================================================
RCS file: build/org/eclipse/cdt/gnu/tools/CGnuTool.java
diff -N build/org/eclipse/cdt/gnu/tools/CGnuTool.java
--- build/org/eclipse/cdt/gnu/tools/CGnuTool.java	17 Feb 2003 19:13:07 -0000	1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,37 +0,0 @@
-/**********************************************************************
- * Copyright (c) 2002,2003 Timesys 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: 
- * Timesys - Initial API and implementation
- **********************************************************************/
-
-package org.eclipse.cdt.gnu.tools;
-
-import org.eclipse.cdt.core.IErrorParser;
-import org.eclipse.cdt.core.builder.ACTool;
-
-/**
- * Represents a generic GNU tool.
- */
-public class CGnuTool extends ACTool {
-
-	private final static String TOOL_TYPE_PREFIX = "org.eclipse.cdt.core.builder.";
-	private final static String TOOL_ID_PREFIX = "org.eclipse.cdt.gnu.tools.";
-
-	CGnuTool(String id, String exeName) {
-		super(TOOL_TYPE_PREFIX + id, TOOL_ID_PREFIX + id, exeName);
-	};
-	
-	/**
-	 * @see org.eclipse.cdt.core.builder.model.ICTool#getErrorParser()
-	 */
-	public IErrorParser getErrorParser() {
-		// TODO: implementation
-		return null;
-	}
-
-}
Index: build/org/eclipse/cdt/gnu/tools/CGnuToolchain.java
===================================================================
RCS file: build/org/eclipse/cdt/gnu/tools/CGnuToolchain.java
diff -N build/org/eclipse/cdt/gnu/tools/CGnuToolchain.java
--- build/org/eclipse/cdt/gnu/tools/CGnuToolchain.java	17 Feb 2003 19:13:07 -0000	1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,142 +0,0 @@
-/**********************************************************************
- * Copyright (c) 2002,2003 Timesys 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: 
- * Timesys - Initial API and implementation
- **********************************************************************/
-
-package org.eclipse.cdt.gnu.tools;
-
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.Map;
-
-import org.eclipse.cdt.core.builder.model.ICBuildCmd;
-import org.eclipse.cdt.core.builder.model.ICBuildConfig;
-import org.eclipse.cdt.core.builder.model.ICTool;
-import org.eclipse.cdt.core.builder.model.ICToolchain;
-import org.eclipse.core.resources.IFile;
-
-/**
- * Standard GNU toolchain.
- */
-public class CGnuToolchain implements ICToolchain {
-
-	private Map fToolMap;
-
-	public CGnuToolchain() {
-		fToolMap = new HashMap();
-		doRefresh();
-	}
-	
-	protected void doRefresh() {
-		addTool(new CGnuTool("CC", "gcc"));
-		addTool(new CGnuTool("CXX", "c++"));
-		addTool(new CGnuTool("CPP", "gcc"));
-		addTool(new CGnuTool("AS", "as"));
-		addTool(new CGnuTool("LD", "ld"));
-		addTool(new CGnuTool("AR", "ar"));
-		addTool(new CGnuTool("DEBUGGER", "gdb"));
-		addTool(new CGnuTool("PROFILER", "gprof"));
-		addTool(new CGnuTool("STRIP", "strip"));
-	}
-
-	/**
-	 * Determines if a tools exists in the internal map of
-	 * tool instances.
-	 * 
-	 * @param id tool identifier.
-	 * @return true if there is a tool instances that corresponds
-	 * to the provided id.
-	 */
-	protected boolean toolExists(String id) {
-		return fToolMap.containsKey(id);
-	}
-
-	/**
-	 * Add a tool to the internal map of tool instances.
-	 * 
-	 * @param id tool identifier.
-	 * @param tc tool instance.
-	 */
-	protected void addTool(ICTool tool) {
-		fToolMap.put(tool.getId(), tool);
-	}
-
-	/**
-	 * Helper method used to retrieve a tool from the internal
-	 * map of tool instances.
-	 * 
-	 * @param id tool identifier.
-	 * @return tool instance, or null if not found.
-	 */
-	protected ICTool getToolHelper(String id) {
-		ICTool	tool	= null;
-		Object 	obj 	= fToolMap.get(id);
-		if (obj instanceof ICTool) {
-			tool = (ICTool) obj;
-		}
-		return tool;
-	}
-
-	/**
-	 * Remove a toolchain from the internal map of toolchain instances.
-	 * 
-	 * @param id toolchain identifier.
-	 * @return true if toolchain is removed.
-	 */
-	protected boolean removeTool(String id) {
-		boolean exists = toolExists(id);
-		if (exists) {
-			Object obj = fToolMap.remove(id);
-			obj = null;
-		}
-		return exists;
-	}
-
-	/**
-	 * @see org.eclipse.cdt.core.builder.model.ICToolchain#canProcess(IFile)
-	 */
-	public boolean canProcess(IFile file) {
-		// TODO: add logic
-		return true;
-	}
-
-	/**
-	 * @see org.eclipse.cdt.core.builder.model.ICToolchain#getBuildCommands(IFile, ICBuildConfig)
-	 */
-	public ICBuildCmd[] getBuildCommands(IFile file, ICBuildConfig cfg) {
-		// TODO: add logic
-		return null;
-	}
-
-	/**
-	 * @see org.eclipse.cdt.core.builder.model.ICToolchain#getDependencies(IFile, ICBuildConfig)
-	 */
-	public IFile[] getDependencies(IFile file, ICBuildConfig cfg) {
-		// TODO: add logic
-		// Either depend on gcc -MM, or CDOM
-		return null;
-	}
-
-	/**
-	 * @see org.eclipse.cdt.core.builder.model.ICToolchain#getOutputs(IFile, ICBuildConfig)
-	 */
-	public IFile[] getOutputs(IFile file, ICBuildConfig cfg) {
-		// TODO: add logic
-		// Either depend on gcc -MM, or CDOM
-		return null;
-	}
-
-	/**
-	 * @see org.eclipse.cdt.core.builder.model.ICToolchain#getTools()
-	 */
-	public ICTool[] getTools() {
-		Collection tcc = fToolMap.values();
-		return (ICTool[]) fToolMap.values().toArray(new ICTool[fToolMap.size()]);
-	}
-}
Index: build/org/eclipse/cdt/gnu/tools/CGnuToolchainProvider.java
===================================================================
RCS file: build/org/eclipse/cdt/gnu/tools/CGnuToolchainProvider.java
diff -N build/org/eclipse/cdt/gnu/tools/CGnuToolchainProvider.java
--- build/org/eclipse/cdt/gnu/tools/CGnuToolchainProvider.java	17 Feb 2003 19:13:07 -0000	1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,38 +0,0 @@
-/**********************************************************************
- * Copyright (c) 2002,2003 Timesys 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: 
- * Timesys - Initial API and implementation
- **********************************************************************/
-
-package org.eclipse.cdt.gnu.tools;
-
-import org.eclipse.cdt.core.builder.ACToolchainProvider;
-
-/**
- * Standard GNU toolchain provider.
- */
-public class CGnuToolchainProvider extends ACToolchainProvider {
-
-	/**
-	 * Prefix used to construct toolchain identifiers for this
-	 * provider.
-	 */
-	public final static String PROVIDER_ID = "org.eclipse.cdt.gnu.tools";
-
-	/**
-	 * This toolchain provider.
-	 */
-	public final static String NATIVE_ID = PROVIDER_ID + ".native";
-
-	/**
-	 * @see org.eclipse.cdt.core.builder.ACToolchainProvider#doRefresh()
-	 */
-	public void doRefresh() {
-		addToolchain(NATIVE_ID, new CGnuToolchain());
-	}
-}
Index: build/org/eclipse/cdt/gnu/tools/ToolsPlugin.java
===================================================================
RCS file: build/org/eclipse/cdt/gnu/tools/ToolsPlugin.java
diff -N build/org/eclipse/cdt/gnu/tools/ToolsPlugin.java
--- build/org/eclipse/cdt/gnu/tools/ToolsPlugin.java	17 Feb 2003 19:13:07 -0000	1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,77 +0,0 @@
-/**********************************************************************
- * Copyright (c) 2002,2003 Timesys 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: 
- * Timesys - Initial API and implementation
- **********************************************************************/
-
-package org.eclipse.cdt.gnu.tools;
-
-import java.util.MissingResourceException;
-import java.util.ResourceBundle;
-
-import org.eclipse.core.resources.IWorkspace;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.IPluginDescriptor;
-import org.eclipse.ui.plugin.AbstractUIPlugin;
-
-/**
- * The main plugin class to be used in the desktop.
- */
-public class ToolsPlugin extends AbstractUIPlugin {
-	//The shared instance.
-	private static ToolsPlugin plugin;
-	//Resource bundle.
-	private ResourceBundle resourceBundle;
-	
-	/**
-	 * The constructor.
-	 */
-	public ToolsPlugin(IPluginDescriptor descriptor) {
-		super(descriptor);
-		plugin = this;
-		try {
-			resourceBundle= ResourceBundle.getBundle("org.eclipse.cdt.gnu.tools.ToolsPluginResources");
-		} catch (MissingResourceException x) {
-			resourceBundle = null;
-		}
-	}
-
-	/**
-	 * Returns the shared instance.
-	 */
-	public static ToolsPlugin getDefault() {
-		return plugin;
-	}
-
-	/**
-	 * Returns the workspace instance.
-	 */
-	public static IWorkspace getWorkspace() {
-		return ResourcesPlugin.getWorkspace();
-	}
-
-	/**
-	 * Returns the string from the plugin's resource bundle,
-	 * or 'key' if not found.
-	 */
-	public static String getResourceString(String key) {
-		ResourceBundle bundle= ToolsPlugin.getDefault().getResourceBundle();
-		try {
-			return bundle.getString(key);
-		} catch (MissingResourceException e) {
-			return key;
-		}
-	}
-
-	/**
-	 * Returns the plugin's resource bundle,
-	 */
-	public ResourceBundle getResourceBundle() {
-		return resourceBundle;
-	}
-}
Index: build/org/eclipse/cdt/gnu/tools/tabgroup/CTabGroupCC.java
===================================================================
RCS file: build/org/eclipse/cdt/gnu/tools/tabgroup/CTabGroupCC.java
diff -N build/org/eclipse/cdt/gnu/tools/tabgroup/CTabGroupCC.java
--- build/org/eclipse/cdt/gnu/tools/tabgroup/CTabGroupCC.java	17 Feb 2003 19:13:07 -0000	1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,34 +0,0 @@
-/**********************************************************************
- * Copyright (c) 2002,2003 Timesys 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: 
- * Timesys - Initial API and implementation
- **********************************************************************/
-
-package org.eclipse.cdt.gnu.tools.tabgroup;
-
-import org.eclipse.cdt.gnu.tools.tabs.CTabCompiler;
-import org.eclipse.cdt.ui.builder.ACToolTabGroup;
-import org.eclipse.cdt.ui.builder.ICBuildConfigDialog;
-import org.eclipse.cdt.ui.builder.ICToolTab;
-
-/**
- * Tab group for gcc.
- */
-public class CTabGroupCC extends ACToolTabGroup {
-
-	/**
-	 * @see org.eclipse.cdt.ui.builder.ICToolTabGroup#createTabs(ICBuildConfigDialog)
-	 */
-	public void createTabs(ICBuildConfigDialog dialog) {
-		ICToolTab[] tabs = new ICToolTab[] {
-			new CTabCompiler()
-		};
-		setTabs(tabs);
-	}
-
-}
Index: build/org/eclipse/cdt/gnu/tools/tabgroup/CTabGroupCPP.java
===================================================================
RCS file: build/org/eclipse/cdt/gnu/tools/tabgroup/CTabGroupCPP.java
diff -N build/org/eclipse/cdt/gnu/tools/tabgroup/CTabGroupCPP.java
--- build/org/eclipse/cdt/gnu/tools/tabgroup/CTabGroupCPP.java	17 Feb 2003 19:13:07 -0000	1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,34 +0,0 @@
-/**********************************************************************
- * Copyright (c) 2002,2003 Timesys 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: 
- * Timesys - Initial API and implementation
- **********************************************************************/
-
-package org.eclipse.cdt.gnu.tools.tabgroup;
-
-import org.eclipse.cdt.gnu.tools.tabs.CTabPreprocessor;
-import org.eclipse.cdt.ui.builder.ACToolTabGroup;
-import org.eclipse.cdt.ui.builder.ICBuildConfigDialog;
-import org.eclipse.cdt.ui.builder.ICToolTab;
-
-/**
- * Tab group for cpp.
- */
-public class CTabGroupCPP extends ACToolTabGroup {
-
-	/**
-	 * @see org.eclipse.cdt.ui.builder.ICToolTabGroup#createTabs(ICBuildConfigDialog)
-	 */
-	public void createTabs(ICBuildConfigDialog dialog) {
-		ICToolTab[] tabs = new ICToolTab[] {
-			new CTabPreprocessor()
-		};
-		setTabs(tabs);
-	}
-
-}
Index: build/org/eclipse/cdt/gnu/tools/tabgroup/CTabGroupCXX.java
===================================================================
RCS file: build/org/eclipse/cdt/gnu/tools/tabgroup/CTabGroupCXX.java
diff -N build/org/eclipse/cdt/gnu/tools/tabgroup/CTabGroupCXX.java
--- build/org/eclipse/cdt/gnu/tools/tabgroup/CTabGroupCXX.java	17 Feb 2003 19:13:07 -0000	1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,34 +0,0 @@
-/**********************************************************************
- * Copyright (c) 2002,2003 Timesys 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: 
- * Timesys - Initial API and implementation
- **********************************************************************/
-
-package org.eclipse.cdt.gnu.tools.tabgroup;
-
-import org.eclipse.cdt.gnu.tools.tabs.CTabCompiler;
-import org.eclipse.cdt.ui.builder.ACToolTabGroup;
-import org.eclipse.cdt.ui.builder.ICBuildConfigDialog;
-import org.eclipse.cdt.ui.builder.ICToolTab;
-
-/**
- * Tab group for g++.
- */
-public class CTabGroupCXX extends ACToolTabGroup {
-
-	/**
-	 * @see org.eclipse.cdt.ui.builder.ICToolTabGroup#createTabs(ICBuildConfigDialog)
-	 */
-	public void createTabs(ICBuildConfigDialog dialog) {
-		ICToolTab[] tabs = new ICToolTab[] {
-			new CTabCompiler()
-		};
-		setTabs(tabs);
-	}
-
-}
Index: build/org/eclipse/cdt/gnu/tools/tabgroup/CTabGroupLD.java
===================================================================
RCS file: build/org/eclipse/cdt/gnu/tools/tabgroup/CTabGroupLD.java
diff -N build/org/eclipse/cdt/gnu/tools/tabgroup/CTabGroupLD.java
--- build/org/eclipse/cdt/gnu/tools/tabgroup/CTabGroupLD.java	17 Feb 2003 19:13:07 -0000	1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,34 +0,0 @@
-/**********************************************************************
- * Copyright (c) 2002,2003 Timesys 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: 
- * Timesys - Initial API and implementation
- **********************************************************************/
-
-package org.eclipse.cdt.gnu.tools.tabgroup;
-
-import org.eclipse.cdt.gnu.tools.tabs.CTabLinker;
-import org.eclipse.cdt.ui.builder.ACToolTabGroup;
-import org.eclipse.cdt.ui.builder.ICBuildConfigDialog;
-import org.eclipse.cdt.ui.builder.ICToolTab;
-
-/**
- * Tab group for ld.
- */
-public class CTabGroupLD extends ACToolTabGroup {
-
-	/**
-	 * @see org.eclipse.cdt.ui.builder.ICToolTabGroup#createTabs(ICBuildConfigDialog)
-	 */
-	public void createTabs(ICBuildConfigDialog dialog) {
-		ICToolTab[] tabs = new ICToolTab[] {
-			new CTabLinker()
-		};
-		setTabs(tabs);
-	}
-
-}
Index: build/org/eclipse/cdt/gnu/tools/tabs/CTabCompiler.java
===================================================================
RCS file: build/org/eclipse/cdt/gnu/tools/tabs/CTabCompiler.java
diff -N build/org/eclipse/cdt/gnu/tools/tabs/CTabCompiler.java
--- build/org/eclipse/cdt/gnu/tools/tabs/CTabCompiler.java	17 Feb 2003 19:13:07 -0000	1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,275 +0,0 @@
-/**********************************************************************
- * Copyright (c) 2002,2003 Timesys 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: 
- * Timesys - Initial API and implementation
- **********************************************************************/
-
-package org.eclipse.cdt.gnu.tools.tabs;
-import java.util.HashMap;
-
-import org.eclipse.cdt.core.builder.model.ICBuildConfig;
-import org.eclipse.cdt.core.builder.model.ICBuildConfigWorkingCopy;
-import org.eclipse.cdt.core.builder.model.ICPosixBuildConstants;
-import org.eclipse.cdt.ui.builder.ACToolTab;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.GC;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Combo;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Table;
-import org.eclipse.swt.widgets.TableItem;
-import org.eclipse.swt.widgets.Text;
-
-/**
- * The control for editing and viewing compiler options.
- */
-public class CTabCompiler extends ACToolTab {
-		
-	private Combo		fOptimizationLevel;
-	private Button 	btnDebugging;
-	private Button		btnProfiling;
-	private Text		fUserOptions;
-	private Table 		fWarningsTable;
-	private TableItem	fWarnAll;
-	private TableItem 	fWarnAsErrors;
-	private TableItem	fWarnFormatStrings;
-	private TableItem 	fWarnPointerArith;
-	private TableItem 	fWarnSwitch;
-	private TableItem 	fWarnUnreachable;
-	private TableItem 	fWarnUnused;		
-	private HashMap 	optLevelMap = new HashMap();
-	
-	private final String[] OPT_LEVELS = {"None", "Medium", "High" }; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-	private final String[] OPT_ARGS = {"-O0", "-O1", "-O2" }; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-	
-	/**
-	 * Constructs the object
-	 */
-	public CTabCompiler() {
-		// populate hash map
-		for (int nIndex = 0; nIndex < OPT_LEVELS.length; nIndex++) 
-		{
-			optLevelMap.put(OPT_ARGS[nIndex], OPT_LEVELS[nIndex]);
-		}
-		
-	}
-
-	/**
-	 * Helper to add an item to the table of compiler settings
-	 *
-	 * @param parent				the owning control
-	 * @param txtLabel				text for the table item
-	 */
-	private TableItem createTableItem(Table parent, String txtLabel)
-	{
-		TableItem retval = new TableItem(parent, SWT.NONE);
-		
-		if (retval != null) {
-			retval.setText(txtLabel);
-		}
-		
-		return retval;
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.cdt.ui.builder.ICToolTab#createControl(Composite)
-	 */
-	public void createControl(Composite parent) {
-
-		Composite ths = new Composite(parent, SWT.NONE);
-
-		// Panel
-		
-		ths.setLayout(new GridLayout(2, true));
-		ths.setLayoutData(new GridData(GridData.FILL_BOTH));
-
-		// --------------------------------------------------
-		// Left column
-		// --------------------------------------------------
-
-		Composite cmpLeft = new Composite(ths, SWT.NONE);
-
-		cmpLeft.setLayout(new GridLayout());
-		cmpLeft.setLayoutData(new GridData(GridData.FILL_BOTH));
-
-		// row 1
-		new Label(cmpLeft, SWT.LEFT).setText(("Optimization_Level_7")); //$NON-NLS-1$
-
-		// row 2
-		fOptimizationLevel = new Combo(cmpLeft, SWT.RIGHT | SWT.TOP | SWT.READ_ONLY);
-		fOptimizationLevel.setLayoutData(new GridData(GridData.GRAB_HORIZONTAL | GridData.HORIZONTAL_ALIGN_FILL | GridData.VERTICAL_ALIGN_FILL));
-
-		// row 3
-		btnDebugging = new Button(cmpLeft, SWT.CHECK | SWT.LEFT);
-		btnDebugging.setText(("Enable_Debugging_9")); //$NON-NLS-1$
-
-		// row 4
-		btnProfiling = new Button(cmpLeft, SWT.CHECK | SWT.LEFT);
-		btnProfiling.setText(("Enable_Profiling_10")); //$NON-NLS-1$
-		
-		// row 5			
-		new Label(cmpLeft, SWT.LEFT).setText(("Additional_Options_11")); //$NON-NLS-1$
-
-		// row 6
-		fUserOptions = new Text(cmpLeft, SWT.BORDER | SWT.LEFT);
-		GridData gridData = new GridData(GridData.FILL_HORIZONTAL | GridData.GRAB_VERTICAL);
-		gridData.verticalAlignment = GridData.BEGINNING;
-		fUserOptions.setLayoutData(gridData);	
-
-		// --------------------------------------------------
-		// Right column
-		// --------------------------------------------------
-
-		Composite cmpRight = new Composite(ths, SWT.NONE);
-
-		cmpRight.setLayout(new GridLayout());
-		cmpRight.setLayoutData(new GridData(GridData.FILL_BOTH));
-
-		// row 1
-		new Label(cmpRight, SWT.LEFT).setText(("Warnings__8")); //$NON-NLS-1$
-
-		// row 2
-		fWarningsTable = new Table(cmpRight, SWT.BORDER | SWT.MULTI | SWT.CHECK | SWT.HIDE_SELECTION);
-		fWarnAll = createTableItem(fWarningsTable, "All Warnings");
-		fWarnAsErrors = createTableItem(fWarningsTable, "Warnings as errors");
-		fWarnFormatStrings = createTableItem(fWarningsTable, "Bad format strings");
-		fWarnPointerArith = createTableItem(fWarningsTable, "pointer aritemetic");
-		fWarnSwitch = createTableItem(fWarningsTable, "No default switch statement");
-		fWarnUnreachable = createTableItem(fWarningsTable, "Unreachable code");
-		fWarnUnused = createTableItem(fWarningsTable, "Unused parameter");
-	
-		GridData grdWarnings = new GridData(GridData.GRAB_HORIZONTAL | GridData.GRAB_VERTICAL | GridData.HORIZONTAL_ALIGN_FILL | GridData.VERTICAL_ALIGN_FILL);
-		GC gc = new GC(fWarningsTable);
-		gc.setFont(fWarningsTable.getFont());
-		grdWarnings.widthHint = org.eclipse.jface.dialogs.Dialog.convertWidthInCharsToPixels(gc.getFontMetrics(), 35);
-		gc.dispose(); 
-		fWarningsTable.setLayoutData(grdWarnings);
-
-		// set the size of this control
-		ths.setSize(ths.computeSize(SWT.DEFAULT, SWT.DEFAULT));
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.cdt.ui.builder.ICToolTab#initializeFrom(ICBuildConfig)
-	 */
-	public void initializeFrom(ICBuildConfig config) {
-		boolean debug = false;
-		boolean profile = false;
-		boolean optimize = true;
-		boolean[] warn = new boolean[7];
-		int optLevel = 0;
-		String userArgs = "";
-	
-		// can't populate with null data pointer
-		if (config == null) {
-			return;
-		}
-		
-		try {
-			profile = config.getAttribute(ICPosixBuildConstants.CC_ENABLE_PROFILE, false);
-			debug = config.getAttribute(ICPosixBuildConstants.CC_ENABLE_DEBUG, false);
-			optimize = config.getAttribute(ICPosixBuildConstants.CC_ENABLE_OPTIMIZE, false);
-			optLevel = config.getAttribute(ICPosixBuildConstants.CC_OPTIMZE_LEVEL, 0);
-			userArgs = config.getAttribute(ICPosixBuildConstants.CC_USER_ARGS, "");
-			warn[0] = config.getAttribute(ICPosixBuildConstants.CC_WARN_ALL, false);
-			warn[1] = config.getAttribute(ICPosixBuildConstants.CC_WARN_ASERROR, false);
-			warn[2] = config.getAttribute(ICPosixBuildConstants.CC_WARN_FORMAT, false);
-			warn[3] = config.getAttribute(ICPosixBuildConstants.CC_WARN_POINTERAR, false);
-			warn[4] = config.getAttribute(ICPosixBuildConstants.CC_WARN_SWITCH, false);
-			warn[5] = config.getAttribute(ICPosixBuildConstants.CC_WARN_UNREACH, false);
-			warn[6] = config.getAttribute(ICPosixBuildConstants.CC_WARN_UNUSED, false);
-		} catch (CoreException e) {
-		}
-
-		btnProfiling.setSelection(profile);
-		btnDebugging.setSelection(debug);
-		if (optimize) {
-			fOptimizationLevel.select(optLevel);
-		}
-		fUserOptions.setText(userArgs);
-		
-		// check for all of the warnings (could have been better...)
-		fWarnAll.setChecked(warn[0]);
-		fWarnAsErrors.setChecked(warn[1]);
-		fWarnFormatStrings.setChecked(warn[2]);
-		fWarnPointerArith.setChecked(warn[3]);
-		fWarnSwitch.setChecked(warn[4]);
-		fWarnUnreachable.setChecked(warn[5]);
-		fWarnUnused.setChecked(warn[6]);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.cdt.ui.builder.ICToolTab#performApply(ICBuildConfigWorkingCopy)
-	 */
-	public void performApply(ICBuildConfigWorkingCopy config) {
-
-		boolean debug = false;
-		boolean profile = false;
-		boolean optimize = true;
-		boolean[] warn = new boolean[7];
-		int optLevel = 0;
-		String userArgs = "";
-	
-		// can't populate with null data pointer
-		if (config == null) {
-			return;
-		}
-
-		profile = btnProfiling.getSelection();
-		debug = btnDebugging.getSelection();
-		// optimize = ???;
-		optLevel = fOptimizationLevel.getSelectionIndex();
-		userArgs = fUserOptions.getText();
-		
-		// check for all of the warnings (could have been better...)
-		warn[0] = fWarnAll.getChecked();
-		warn[1] = fWarnAsErrors.getChecked();
-		warn[2] = fWarnFormatStrings.getChecked();
-		warn[3] = fWarnPointerArith.getChecked();
-		warn[4] = fWarnSwitch.getChecked();
-		warn[5] = fWarnUnreachable.getChecked();
-		warn[6] = fWarnUnused.getChecked();
-		
-		config.setAttribute(ICPosixBuildConstants.CC_ENABLE_PROFILE, profile);
-		config.setAttribute(ICPosixBuildConstants.CC_ENABLE_DEBUG, debug);
-		config.setAttribute(ICPosixBuildConstants.CC_ENABLE_OPTIMIZE, optimize);
-		config.setAttribute(ICPosixBuildConstants.CC_OPTIMZE_LEVEL, optLevel);
-		config.setAttribute(ICPosixBuildConstants.CC_USER_ARGS, userArgs);
-		config.setAttribute(ICPosixBuildConstants.CC_WARN_ALL, warn[0]);
-		config.setAttribute(ICPosixBuildConstants.CC_WARN_ASERROR, warn[1]);
-		config.setAttribute(ICPosixBuildConstants.CC_WARN_FORMAT, warn[2]);
-		config.setAttribute(ICPosixBuildConstants.CC_WARN_POINTERAR, warn[3]);
-		config.setAttribute(ICPosixBuildConstants.CC_WARN_SWITCH, warn[4]);
-		config.setAttribute(ICPosixBuildConstants.CC_WARN_UNREACH, warn[5]);
-		config.setAttribute(ICPosixBuildConstants.CC_WARN_UNUSED, warn[6]);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.cdt.ui.builder.ICToolTab#setDefaults(ICBuildConfigWorkingCopy)
-	 */
-	public void setDefaults(ICBuildConfigWorkingCopy config) {
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.cdt.ui.builder.ICToolTab#isValid(ICBuildConfigWorkingCopy)
-	 */
-	public boolean isValid(ICBuildConfigWorkingCopy config) {
-		return true;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.cdt.ui.builder.ICToolTab#getName()
-	 */
-	public String getName() {
-		return "Compiler";
-	}
-}
Index: build/org/eclipse/cdt/gnu/tools/tabs/CTabLinker.java
===================================================================
RCS file: build/org/eclipse/cdt/gnu/tools/tabs/CTabLinker.java
diff -N build/org/eclipse/cdt/gnu/tools/tabs/CTabLinker.java
--- build/org/eclipse/cdt/gnu/tools/tabs/CTabLinker.java	17 Feb 2003 19:13:07 -0000	1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,583 +0,0 @@
-/**********************************************************************
- * Copyright (c) 2002,2003 Timesys 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: 
- * Timesys - Initial API and implementation
- **********************************************************************/
-
-package org.eclipse.cdt.gnu.tools.tabs;
-
-import java.util.Iterator;
-import java.util.Vector;
-
-import org.eclipse.cdt.core.builder.model.CBuildVariable;
-import org.eclipse.cdt.core.builder.model.ICBuildConfig;
-import org.eclipse.cdt.core.builder.model.ICBuildConfigWorkingCopy;
-import org.eclipse.cdt.core.builder.model.ICBuildVariable;
-import org.eclipse.cdt.core.builder.model.ICPosixBuildConstants;
-import org.eclipse.cdt.core.builder.model.ICToolchain;
-import org.eclipse.cdt.ui.builder.ACToolTab;
-import org.eclipse.cdt.ui.builder.internal.CBuildVariableDialog;
-import org.eclipse.cdt.ui.builder.internal.CLibFileDialog;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.jface.util.Assert;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.FocusAdapter;
-import org.eclipse.swt.events.FocusEvent;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.graphics.GC;
-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.Group;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.List;
-import org.eclipse.swt.widgets.Text;
-
-/**
- * The control for editing and viewing linker options.
- */
-public class CTabLinker extends ACToolTab {
-	
-	private Text fOutputFileName;
-	private Text fCmdLine;
-	private Button btnStatic;
-	private Button btnSharedObject;
-	private Button btnStripSybmols;
-	private List fLibPaths;
-	private List fLibs;
-	private List fLibFileList; // Used for validation.
-	private Button btnAddLib;	// this set of buttons controls the lib of libraries
-	private Button btnRemoveLib;
-	private Button btnMoveUp;
-	private Button btnMoveDown;
-	private Button btnRemove;	// set of buttons for the library paths
-
-	class addLibraryPath extends SelectionAdapter 
-	{
-		public void widgetSelected(SelectionEvent sel) 
-		{
-			CBuildVariableDialog selectFolder = new CBuildVariableDialog(getShell(), ("Select_Library_Path_1")); //$NON-NLS-1$
-			if (selectFolder.open() == selectFolder.OK) {
-				ICBuildVariable result = selectFolder.getSelection();
-				fLibPaths.add(result.toString());
-			}
-		}
-	};
-
-	class addLibraryFile extends SelectionAdapter 
-	{
-		public void widgetSelected(SelectionEvent sel) 
-		{
-			
-			// create list of item to send to the library picker
-			ICBuildVariable[] libPaths = new CBuildVariable[fLibPaths.getItemCount()];
-			for (int nIndex = 0; nIndex < fLibPaths.getItemCount(); nIndex++) {
-				String item = fLibPaths.getItem(nIndex);
-				int nCloseBracePos = item.indexOf("]");//$NON-NLS-1$
-				String name = item.substring(1, nCloseBracePos);
-				String val = item.substring(nCloseBracePos + 2);
-				libPaths[nIndex] = new CBuildVariable(name, val, "");// fLibPaths.getItem(nIndex));
-			}
-			
-			fLibFileList = fLibs;				
-			CLibFileDialog selectFile = new CLibFileDialog(getShell(),
-														 (ICToolchain) null /* getToolchain() */,
-														 libPaths,
-														 fLibFileList);
-			if (selectFile.open() == selectFile.OK) {
-				fLibs.add(selectFile.getSelection().getName());
-			}
-			
-			// Update the move down button.
-			if (fLibs.getItemCount() > 1) {
-				btnMoveDown.setEnabled(true);
-			}
-		}
-	};
-			
-	class delLibraryPath extends SelectionAdapter 
-	{
-		public void widgetSelected(SelectionEvent sel) 
-		{
-			int[] nSelItems = fLibPaths.getSelectionIndices();
-			
-			if (nSelItems != null) {						
-				fLibPaths.remove(nSelItems);
-			}
-		}
-	};
-
-	class delLibraryFile extends SelectionAdapter 
-	{
-		public void widgetSelected(SelectionEvent sel) 
-		{
-			int[] nSelItems = fLibs.getSelectionIndices();
-			
-			if (nSelItems != null) {						
-				fLibs.remove(nSelItems);
-			}
-			
-			// Added to make sure that if nothing is selected the move up/down buttons are appropriately enabled or 
-			// disabled.
-			nSelItems = fLibs.getSelectionIndices();
-			if ((nSelItems != null) && (nSelItems.length == 0)) {
-				btnMoveUp.setEnabled(false);
-				btnMoveDown.setEnabled(false);
-			}
-		}
-	};
-
-	class moveLibs extends SelectionAdapter
-	{
-		int m_nDelta;
-		
-		public moveLibs(int delta) {
-			Assert.isTrue(delta == -1 || delta == 1, ("Delta_must_be_1_or_-1_2")); //$NON-NLS-1$
-			m_nDelta = delta;
-		}
-		
-		private boolean CanMove(int selections, int delta ) {
-			boolean canMove = true;
-			
-			// First of all check if we can even move the selected lib names up or down.
-			if ((selections == 0) && (delta == -1)) {
-				btnMoveUp.setEnabled(false);
-				
-				if (fLibs.getItemCount() > 1) {
-					btnMoveDown.setEnabled(true);
-				}
-				canMove = false;
-			}
-			if ((selections == (fLibs.getItemCount() - 1)) && (delta == 1)) {
-				btnMoveDown.setEnabled(false);
-				
-				if (fLibs.getItemCount() > 1) {
-					btnMoveUp.setEnabled(true);
-				}
-				canMove = false;
-			}
-			
-			return canMove;
-		}
-		
-		public void widgetSelected(SelectionEvent sel) {
-			
-			int[] selections = fLibs.getSelectionIndices();
-			if ((selections != null) && (m_nDelta != 0)) {
-				int nStart = (m_nDelta < 0) ? 0 : selections.length - 1;
-				int nEnd = (m_nDelta < 0) ? selections.length : -1;
-				String strTemp;
-
-				boolean bCanMove = CanMove(selections[nStart], m_nDelta);
-				// this loop moves group of items based on the delta and moves them
-				for (int nIndex = nStart ; nIndex != nEnd && bCanMove; nIndex += (m_nDelta * -1)) {										
-					// remove and re-add the list box
-					strTemp = fLibs.getItem(selections[nIndex]);
-					fLibs.remove(selections[nIndex]);
-					fLibs.add(strTemp, selections[nIndex] + m_nDelta);
-					// adjust the index in the selection list so we can re-highlight the block
-					selections[nIndex] = selections[nIndex] + m_nDelta;
-					
-					bCanMove = CanMove(selections[nIndex], m_nDelta);
-				}
-				fLibs.select(selections);
-			}
-		}
-	};
-	
-	
-	// decl these after defining the vars
-	addLibraryPath m_addLibraryPath = new addLibraryPath();
-	delLibraryPath m_delLibraryPath = new delLibraryPath();
-	addLibraryFile m_addLibraryFile = new addLibraryFile();
-	delLibraryFile m_delLibraryFile	= new delLibraryFile();
-			
-	public CTabLinker() {
-		super();
-	}
-
-	class TextWidth {
-		private int width_ = 0;
-		public TextWidth(Composite composite, String[] labels) {
-			GC gc = new GC(composite);		
-			gc.setFont(composite.getFont());
-			for (int i = 0; i < labels.length; i++) {
-				int newWidth = gc.textExtent(labels[i]).x + 10; //$NON-NLS-1$
-				if (newWidth > width_) {
-					width_ = newWidth;
-				}
-			}
-		}
-		public int getWidth() {
-			return width_;
-		}
-	}
-	
-	/**
-	 * Helper function for creating a grid layout to spec.
-	 * 
-	 * @param columns		Number of columns in layout.
-	 * @param equalWidth	True if columns are of equal width.
-	 * @param marginHeight	Margin height for layout.
-	 * @param marginWidth	Margin width for layout.
-	 * 
-	 * @return Newly created GridLayout with the specified properties.
-	 */
-	private GridLayout createGridLayout(int columns, boolean equalWidth, int marginHeight, int marginWidth) {
-		GridLayout layout = new GridLayout(columns, equalWidth);
-		layout.marginHeight = marginHeight;
-		layout.marginWidth 	= marginWidth;
-		return layout;
-	}
-	
-	/** 
-	 * helper routine for putting the values in the list box
-	 * 
-	 * @param lstTarget	the control to fill with values
-	 * @param data 		linker properties data 
-	 * @param data			parameter name to fetch from data
-	 * 
-	 */
-	private void setList(org.eclipse.swt.widgets.List target, java.util.List list)
-	{
-		target.removeAll();
-		if (null != list) {
-			for (Iterator iter = list.iterator(); iter.hasNext();) {
-				 target.add((String) iter.next());
-			}
-		}
-	}
-		
-	/**
-	 * helper routine for getting data from a list control
-	 * @param control contol to get data from
-	 */		
-	private java.util.List getList(List control) 
-	{
-		String[] items = fLibs.getItems();
-		Vector vec = new Vector();
-		for (int i = 0; i < items.length; i++) {
-			vec.add(items[i]);
-		}
-		return vec;
-	}
-
-	/**
-	 * helper routine for getting data from a text control
-	 * @param control contol to get data from
-	 */		
-	private String readText(Text control) 
-	{
-		String str = control.getText();
-		if (str != null) {
-			str.trim();	
-		} else {
-			str = "";
-		}
-		return str;
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.cdt.ui.builder.ICToolTab#createControl(Composite)
-	 */
-	public void createControl(Composite parent) {
-		
-		final String[]	BUTTON_LABELS = {	
-			("Add..._5"), //$NON-NLS-1$
-			("Remove_7"), //$NON-NLS-1$
-			("Add_12"), //$NON-NLS-1$
-			("Remove_13"), //$NON-NLS-1$
-			("Move_Up_14"), //$NON-NLS-1$
-			("Move_Down_15") //$NON-NLS-1$
-		};
-
-		Composite ths = new Composite(parent, SWT.NONE);
-		int BUTTON_WIDTH = new TextWidth(ths, BUTTON_LABELS).getWidth();
-		
-		// Panel
-
-		ths.setLayout(new GridLayout(2, true));
-		ths.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_BEGINNING | GridData.VERTICAL_ALIGN_BEGINNING | GridData.FILL_BOTH));
-		fLibFileList = new List(parent, SWT.NONE);
-							
-		// --------------------------------------------------
-		// Left column
-		// --------------------------------------------------
-
-		Composite cmpLeft = new Composite(ths, SWT.NONE);
-
-		cmpLeft.setLayout(createGridLayout(1, true, 2, 2));
-		cmpLeft.setLayoutData(new GridData(GridData.FILL_BOTH));
-
-		// row 1
-		new Label(cmpLeft, SWT.NULL).setText(("Output_File_Name_3")); //$NON-NLS-1$
-
-		// row 2
-		fOutputFileName = new Text(cmpLeft, SWT.LEFT | SWT.BORDER);
-		fOutputFileName.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_BEGINNING | GridData.VERTICAL_ALIGN_BEGINNING | GridData.FILL_HORIZONTAL));
-
-		// row 3
-		btnStatic = new Button(cmpLeft, SWT.CHECK | SWT.LEFT);
-		btnStatic.setText(("Perform_Static_Linking_6")); //$NON-NLS-1$
-		btnStatic.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_BEGINNING | GridData.VERTICAL_ALIGN_BEGINNING));
-
-		// row 4
-		btnSharedObject = new Button(cmpLeft, SWT.CHECK | SWT.LEFT);
-		btnSharedObject.setText(("Create_Shared_Object_8")); //$NON-NLS-1$
-		btnSharedObject.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_BEGINNING | GridData.VERTICAL_ALIGN_BEGINNING | GridData.FILL_HORIZONTAL));
-
-		// row 5			
-		btnStripSybmols = new Button(cmpLeft, SWT.CHECK | SWT.LEFT);
-		btnStripSybmols.setText(("Strip_Symbols_9")); //$NON-NLS-1$
-		btnStripSybmols.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_BEGINNING | GridData.VERTICAL_ALIGN_BEGINNING | GridData.FILL_HORIZONTAL));
-
-		// row 6
-		new Label(cmpLeft, SWT.NULL).setText(("Additional_Options_11")); //$NON-NLS-1$
-
-		// row 7
-		fCmdLine = new Text(cmpLeft, SWT.LEFT | SWT.BORDER);
-		fCmdLine.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_BEGINNING | GridData.VERTICAL_ALIGN_BEGINNING | GridData.FILL_HORIZONTAL));
-
-
-		// --------------------------------------------------
-		// Right column
-		// --------------------------------------------------
-
-		Composite cmpRight = new Composite(ths, SWT.NONE);
-
-		cmpRight.setLayout(createGridLayout(1, true, 2, 2));
-		cmpRight.setLayoutData(new GridData(GridData.FILL_BOTH));
-
-		// Lib paths
-
-		Group grpLibPaths = new Group(cmpRight, SWT.SHADOW_NONE);
-		grpLibPaths.setLayout(createGridLayout(1, true, 2, 2));
-		grpLibPaths.setLayoutData(new GridData(GridData.FILL_BOTH));
-		grpLibPaths.setText(("Library_Paths__4")); //$NON-NLS-1$
-
-		Composite cmpLibPaths = new Composite(grpLibPaths, SWT.NONE);
-		cmpLibPaths.setLayout(createGridLayout(1, true, 2, 2));
-		cmpLibPaths.setLayoutData(new GridData(GridData.FILL_BOTH));
-
-		Composite cmpPathCtrls = new Composite(cmpLibPaths, SWT.NONE);
-		cmpPathCtrls.setLayout(createGridLayout(2, false, 2, 2));
-		cmpPathCtrls.setLayoutData(new GridData(GridData.FILL_BOTH));
-
-		fLibPaths = new List(cmpPathCtrls, SWT.LEFT | SWT.BORDER | SWT.MULTI | SWT.V_SCROLL | SWT.H_SCROLL); 
-		fLibPaths.setLayoutData(new GridData(GridData.FILL_BOTH));
-
-		Composite cmpPathButtons = new Composite(cmpPathCtrls, SWT.NONE);
-		cmpPathButtons.setLayout(createGridLayout(1, true, 2, 2));
-		GridData gdPathBtns = new GridData();
-		gdPathBtns.widthHint = BUTTON_WIDTH;
-		cmpPathButtons.setLayoutData(gdPathBtns);
-
-		Button btnNew = new Button(cmpPathButtons, SWT.NULL); 
-		btnNew.setText(("Add..._5")); //$NON-NLS-1$
-		btnNew.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-
-		btnRemove = new Button(cmpPathButtons, SWT.NULL);
-		btnRemove.setText(("Remove_7")); //$NON-NLS-1$
-		btnRemove.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-
-		// Libs
-
-		Group grpLibs = new Group(cmpRight, SWT.SHADOW_NONE);
-		grpLibs.setLayout(createGridLayout(1, true, 2, 2));
-		grpLibs.setLayoutData(new GridData(GridData.FILL_BOTH));
-		grpLibs.setText(("Libraries_10")); //$NON-NLS-1$
-
-		Composite cmpLibs = new Composite(grpLibs, SWT.NONE);
-		cmpLibs.setLayout(createGridLayout(1, true, 2, 2));
-		cmpLibs.setLayoutData(new GridData(GridData.FILL_BOTH));
-
-		Composite cmpLibCtrls = new Composite(cmpLibs, SWT.NONE);
-		cmpLibCtrls.setLayout(createGridLayout(2, false, 2, 2));
-		cmpLibCtrls.setLayoutData(new GridData(GridData.FILL_BOTH));
-
-		fLibs = new List(cmpLibCtrls, SWT.LEFT | SWT.BORDER | SWT.MULTI | SWT.V_SCROLL | SWT.H_SCROLL);
-		fLibs.setLayoutData(new GridData(GridData.FILL_BOTH));
-
-		Composite cmpLibButtons = new Composite(cmpLibCtrls, SWT.NONE);
-		cmpLibButtons.setLayout(createGridLayout(1, true, 2, 2));
-		GridData gdLibBtns = new GridData();
-		gdLibBtns.widthHint = BUTTON_WIDTH;
-		cmpLibButtons.setLayoutData(gdLibBtns);
-
-		btnAddLib = new Button(cmpLibButtons, SWT.NULL);
-		btnAddLib.setText(("Add_12")); //$NON-NLS-1$
-		btnAddLib.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-		
-		btnRemoveLib = new Button(cmpLibButtons, SWT.NULL);
-		btnRemoveLib.setText(("Remove_13")); //$NON-NLS-1$
-		btnRemoveLib.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-		
-		btnMoveUp = new Button(cmpLibButtons, SWT.NULL);
-		btnMoveUp.setText(("Move_Up_14")); //$NON-NLS-1$
-		btnMoveUp.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-		
-		btnMoveDown = new Button(cmpLibButtons, SWT.NULL);
-		btnMoveDown.setText(("Move_Down_15")); //$NON-NLS-1$
-		btnMoveDown.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-		
-		/*
-		 * create the listener events the controls
-		 * 
-		 */
-		btnNew.addSelectionListener(m_addLibraryPath);
-		btnRemove.addSelectionListener(m_delLibraryPath);
-		
-		fLibPaths.addSelectionListener(new SelectionAdapter() 
-			{
-				public void widgetSelected(SelectionEvent e) {
-					int[] selection = fLibPaths.getSelectionIndices();
-					btnRemove.setEnabled(selection.length > 0);						
-				}
-
-			}
-		);
-		
-//			fLibPaths.addKeyListener(new KeyAdapter()
-//				{
-//					public void keyPressed(KeyEvent key) {}
-//					public void keyReleased(KeyEvent key) {}
-//					public void keyTyped(KeyEvent key)
-//					{
-//						if (key.keyCode == SWT.DEL) {
-//							m_delLibraryPath.widgetSelected(null);
-//						}
-//						else if (key.keyCode == SWT.INSERT) {
-//							m_addLibraryPath.widgetSelected(null);
-//						}
-//					}
-//					
-//				}
-//			);
-		
-		btnAddLib.addSelectionListener(m_addLibraryFile);
-		btnRemoveLib.addSelectionListener(m_delLibraryFile);
-		
-		fLibs.addFocusListener(new FocusAdapter() 
-			{
-				public void focusLost(FocusEvent e) {
-					// btnMoveDown.setEnabled(false);
-					// btnMoveUp.setEnabled(false);
-					super.focusLost(e);
-				}
-			}
-		);
-		
-		fLibs.addSelectionListener(new SelectionAdapter() 
-			{
-				public void widgetSelected(SelectionEvent e) {
-					
-					int[] selections = fLibs.getSelectionIndices();
-					if (selections.length > 0) {
-						// see if we should enable the up button
-						btnMoveUp.setEnabled(selections[0] > 0);
-						btnMoveDown.setEnabled(selections[selections.length - 1] < fLibs.getItemCount() - 1);
-						btnRemoveLib.setEnabled(true);
-					}
-					else {
-						// don't enable the buttons if the user hasn't made any selections
-						btnMoveUp.setEnabled(false);
-						btnMoveDown.setEnabled(false);
-						btnRemoveLib.setEnabled(false);
-					}
-					
-					super.widgetSelected(e);
-				}
-			}
-		);
-		
-		btnMoveDown.addSelectionListener(new moveLibs(1));
-		btnMoveUp.addSelectionListener(new moveLibs(-1));
-		
-		// the user hasn't made selections yet, so turn these buttons off
-		btnMoveDown.setEnabled(false);
-		btnMoveUp.setEnabled(false);
-		btnRemoveLib.setEnabled(false);
-		btnRemove.setEnabled(false);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.cdt.ui.builder.ICToolTab#initializeFrom(ICBuildConfig)
-	 */
-	public void initializeFrom(ICBuildConfig config) {
-		String output = "";
-		String cmdLine = "";
-		boolean isStatic = false;
-		boolean isShared = false;
-		boolean isStrip = false;
-		java.util.List libs = null;
-		java.util.List libPaths = null;
-
-		try {
-			output = config.getAttribute(ICPosixBuildConstants.LD_OUTPUT, "");
-			cmdLine = config.getAttribute(ICPosixBuildConstants.LD_USER_ARGS, "");
-			isStatic = config.getAttribute(ICPosixBuildConstants.LD_LINK_STATIC, false);
-			isShared = config.getAttribute(ICPosixBuildConstants.LD_LINK_AS_SHARED, false);
-			isStrip = config.getAttribute(ICPosixBuildConstants.LD_STRIP, false);
-			libs = config.getAttribute(ICPosixBuildConstants.LD_LIBS, libs);
-			libPaths = config.getAttribute(ICPosixBuildConstants.LD_LIBPATHS, libPaths);
-		} catch (CoreException e) {
-		}
-
-		fOutputFileName.setText(output);
-		fCmdLine.setText(cmdLine);
-		btnStatic.setSelection(isStatic);
-		btnSharedObject.setSelection(isShared);
-		btnStripSybmols.setSelection(isStrip);
-		setList(fLibs, libs);
-		setList(fLibs, libPaths);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.cdt.ui.builder.ICToolTab#performApply(ICBuildConfigWorkingCopy)
-	 */
-	public void performApply(ICBuildConfigWorkingCopy config) {
-		config.setAttribute(ICPosixBuildConstants.LD_OUTPUT, readText(fOutputFileName));
-		config.setAttribute(ICPosixBuildConstants.LD_USER_ARGS, readText(fCmdLine));
-		config.setAttribute(ICPosixBuildConstants.LD_LIBS, getList(fLibs));
-		config.setAttribute(ICPosixBuildConstants.LD_LIBPATHS, getList(fLibPaths));
-		config.setAttribute(ICPosixBuildConstants.LD_LINK_STATIC, btnStatic.getSelection());
-		config.setAttribute(ICPosixBuildConstants.LD_STRIP, btnStripSybmols.getSelection());
-
-		if (btnSharedObject.getSelection()) {
-			config.setAttribute(ICPosixBuildConstants.LD_LINK_AS_SHARED, true);
-			config.setAttribute(ICPosixBuildConstants.LD_LINK_AS_ARCHIVE, false);
-			config.setAttribute(ICPosixBuildConstants.LD_LINK_AS_PROGRAM, false);
-		} else {
-			config.setAttribute(ICPosixBuildConstants.LD_LINK_AS_SHARED, false);
-			config.setAttribute(ICPosixBuildConstants.LD_LINK_AS_ARCHIVE, false);
-			config.setAttribute(ICPosixBuildConstants.LD_LINK_AS_PROGRAM, true);
-		}
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.cdt.ui.builder.ICToolTab#setDefaults(ICBuildConfigWorkingCopy)
-	 */
-	public void setDefaults(ICBuildConfigWorkingCopy configuration) {
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.cdt.ui.builder.ICToolTab#isValid(ICBuildConfigWorkingCopy)
-	 */
-	public boolean isValid(ICBuildConfigWorkingCopy config) {
-		return true;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.cdt.ui.builder.ICToolTab#getName()
-	 */
-	public String getName() {
-		return "Linker";
-	}
-}
\ No newline at end of file
Index: build/org/eclipse/cdt/gnu/tools/tabs/CTabPreprocessor.java
===================================================================
RCS file: build/org/eclipse/cdt/gnu/tools/tabs/CTabPreprocessor.java
diff -N build/org/eclipse/cdt/gnu/tools/tabs/CTabPreprocessor.java
--- build/org/eclipse/cdt/gnu/tools/tabs/CTabPreprocessor.java	17 Feb 2003 19:13:07 -0000	1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,547 +0,0 @@
-/**********************************************************************
- * Copyright (c) 2002,2003 Timesys 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: 
- * Timesys - Initial API and implementation
- **********************************************************************/
-
-package org.eclipse.cdt.gnu.tools.tabs;
-
-import java.util.Iterator;
-
-import org.eclipse.cdt.core.builder.model.ICBuildConfig;
-import org.eclipse.cdt.core.builder.model.ICBuildConfigWorkingCopy;
-import org.eclipse.cdt.core.builder.model.ICPosixBuildConstants;
-import org.eclipse.cdt.ui.builder.ACToolTab;
-import org.eclipse.cdt.ui.builder.internal.CBuildVariableDialog;
-import org.eclipse.cdt.ui.builder.internal.CNameValueDialog;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.jface.viewers.ColumnWeightData;
-import org.eclipse.jface.viewers.TableLayout;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.graphics.GC;
-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.Group;
-import org.eclipse.swt.widgets.List;
-import org.eclipse.swt.widgets.Table;
-import org.eclipse.swt.widgets.TableColumn;
-import org.eclipse.swt.widgets.TableItem;
-
-
-/**
- * The control for editing and viewing compiler options.
- */
-public class CTabPreprocessor extends ACToolTab {
-	private Table 	fDefineTable;
-	private Table 	fIncludeTable;
-	private Button	btnIncludeAdd;
-	private Button	btnIncludeRemove;
-	private Button	btnIncludeMoveUp;
-	private Button	btnIncludeMoveDown;
-	private Button	btnDefineAdd;
-	private Button	btnDefineRemove;
-	private Button	btnDefineEdit;
-	private List fIncludePaths;
-	private List fDefineMacros;
-			
-	/**
-	 * Constructs the object
-	 * 
-	 * @param parent	owning window
-	 * @param style 	modal or not
-	 */
-	public CTabPreprocessor() {
-		super();
-	}
-
-	/**
-	 * Helper function for creating a grid layout to spec.
-	 * 
-	 * @param columns		Number of columns in layout.
-	 * @param equalWidth	True if columns are of equal width.
-	 * @param marginHeight	Margin height for layout.
-	 * @param marginWidth	Margin width for layout.
-	 * 
-	 * @return Newly created GridLayout with the specified properties.
-	 */
-	private GridLayout createGridLayout(int columns, boolean equalWidth, int marginHeight, int marginWidth) {
-		GridLayout layout = new GridLayout(columns, equalWidth);
-		layout.marginHeight = marginHeight;
-		layout.marginWidth 	= marginWidth;
-		return layout;
-	}
-
-	/**
-	 * "Add Include" button handler.
-	 */
-	private void handleIncludeAdd(SelectionEvent e) {
-
-		TableItem[] existingItems = fIncludeTable.getItems();
-		fIncludePaths.removeAll();
-		for (int i = 0; i < fIncludeTable.getItemCount(); i++) {
-			fIncludePaths.add(existingItems[i].getText());
-		}
-				
-		CBuildVariableDialog	dlg = new CBuildVariableDialog(getShell(), ("Select_Include_Path_12")); //$NON-NLS-1$
-
-		if (dlg.open() == dlg.OK) {			
-			TableItem item = new TableItem(fIncludeTable, SWT.NONE);					
-			item.setText(dlg.getSelection().toString());
-			fIncludeTable.select(fIncludeTable.indexOf(item));
-			fIncludeTable.setFocus();
-		}
-		
-		handleIncludeTableSelectionChanged();		
-	}
-
-	/**
-	 * "Remove Include" button handler.
-	 */
-	private void handleIncludeRemove(SelectionEvent e) {
-		handleTableRemove(fIncludeTable);
-		handleIncludeTableSelectionChanged();
-	}
-
-
-
-	/**
-	 * "Move Up Include" button handler.
-	 */
-	private void handleIncludeMoveUp(SelectionEvent e) {
-		int 	itemIndex	= fIncludeTable.getSelectionIndex();
-		String 	itemText	= fIncludeTable.getItem(itemIndex).getText();
-
-		fIncludeTable.remove(itemIndex);
-
-		new TableItem(fIncludeTable, SWT.NONE, itemIndex - 1).setText(itemText);
-
-		fIncludeTable.setFocus();
-		fIncludeTable.select(itemIndex - 1);
-		
-		handleIncludeTableSelectionChanged();
-	}
-
-	/**
-	 * "Move Down Include" button handler.
-	 */
-	private void handleIncludeMoveDown(SelectionEvent e) {
-		int 	itemIndex	= fIncludeTable.getSelectionIndex();
-		String 	itemText	= fIncludeTable.getItem(itemIndex).getText();
-
-		fIncludeTable.remove(itemIndex);
-
-		new TableItem(fIncludeTable, SWT.NONE, itemIndex + 1).setText(itemText);
-
-		fIncludeTable.setFocus();
-		fIncludeTable.select(itemIndex + 1);
-		
-		handleIncludeTableSelectionChanged();
-	}
-
-	/**
-	 * Include table selection change handler.
-	 */
-	private void handleIncludeTableSelectionChanged() {
-		int itemIndex	= fIncludeTable.getSelectionIndex();
-		int itemCount	= fIncludeTable.getItemCount();
-		
-		// Add always enabled
-		btnIncludeAdd.setEnabled(true);
-
-		// Remove enabled if > 1 item selected
-		btnIncludeRemove.setEnabled(-1 != itemIndex);
-
-		// Move up/down enabled if:
-		// > 1 item in list
-		// 1 item selected
-		// Item is not first item (up) or last item (down)
-		
-		btnIncludeMoveUp.setEnabled((-1 != itemIndex) && (itemCount > 1) && (0 != itemIndex));
-		btnIncludeMoveDown.setEnabled((-1 != itemIndex) && (itemCount > 1) && ((itemCount - 1) != itemIndex));
-	}
-
-	/**
-	 * "Add Define" button handler.
-	 */
-	private void handleDefineAdd(SelectionEvent e) {
-		
-		TableItem[] existingItems = fDefineTable.getItems();
-		fDefineMacros.removeAll();
-		for (int i =0; i < fDefineTable.getItemCount(); i++) {
-			fDefineMacros.add(existingItems[i].getText());
-		}
-
-		CNameValueDialog dlg = new CNameValueDialog(getShell(), fDefineMacros);
-
-		dlg.setTitle(("New_Preprocessor_Definition_13")); //$NON-NLS-1$
-
-		if (dlg.open() == dlg.OK) {
-			TableItem item = new TableItem(fDefineTable, SWT.NONE);
-			item.setText(0, dlg.getName());
-			item.setText(1, dlg.getValue());
-			fDefineTable.select(fDefineTable.indexOf(item));
-			fDefineTable.setFocus();
-		}
-
-		handleDefineTableSelectionChanged();
-	}
-	
-	/**
-	 * "Remove Define" button handler.
-	 */
-	private void handleDefineRemove(SelectionEvent e) {
-		handleTableRemove(fDefineTable);
-		handleDefineTableSelectionChanged();
-	}
-
-	/**
-	 * "Edit Define" button handler.
-	 */
-	private void handleDefineEdit(SelectionEvent e) {
-		int itemIndex = fDefineTable.getSelectionIndex();
-		
-		if (-1 != itemIndex) {
-			TableItem item = fDefineTable.getItem(itemIndex);
-
-			CNameValueDialog dlg = new CNameValueDialog(getShell());
-
-			dlg.setTitle(("Edit_Preprocessor_Definition_14")); //$NON-NLS-1$
-			dlg.setName(item.getText(0));
-			dlg.setValue(item.getText(1));
-
-			if (dlg.open() == dlg.OK) {
-				item.setText(0, dlg.getName());
-				item.setText(1, dlg.getValue());
-			}
-
-			fDefineTable.select(itemIndex);
-			fDefineTable.setFocus();
-		}
-
-		handleDefineTableSelectionChanged();
-	}
-
-	/**
-	 * Define table selection change handler.
-	 */
-	private void handleDefineTableSelectionChanged() {
-		TableItem[] items = fDefineTable.getSelection();
-		
-		// Add always enabled
-		btnDefineAdd.setEnabled(true);
-
-		// Remove enabled if > 1 item selected
-		btnDefineRemove.setEnabled((null != items) && (1 >= items.length));
-
-		// Edit enabled if exactly 1 item selected
-		btnDefineEdit.setEnabled((null != items) && (1 == items.length));
-	}
-
-	/**
-	 * Generic "remove selected entry from table" method.
-	 * 
-	 * @param Table to remove entry from.
-	 */
-	private void handleTableRemove(Table table) {
-		int itemIndex = table.getSelectionIndex();
-		if (-1 != itemIndex) {
-			TableItem item = table.getItem(itemIndex);
-			item.dispose();
-			int itemCount = table.getItemCount();
-			table.select(0 == itemIndex ? 0 : (itemIndex >= itemCount ? itemCount - 1 : itemIndex));
-			table.setFocus();
-		}
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.cdt.ui.builder.ICToolTab#createControl(Composite)
-	 */
-	public void createControl(Composite parent) {
-		Composite 	cmpGroup	= null;
-		Composite	cmpCtrls	= null;
-		Composite	cmpButtons	= null;
-		Group		group		= null;
-		Table		table		= null;
-		Button		button		= null;
-		TableColumn column		= null;
-		GridLayout	gridLayout 	= null;
-		GridData	gridData	= null;
-		GC 			gc 			= null;
-
-		Composite	ths			= new Composite(parent, SWT.NONE);
-
-		// Panel
-		
-		ths.setLayout(new GridLayout());
-		ths.setLayoutData(new GridData(GridData.FILL_BOTH));
-
-		// Initialize our list containing existing paths,
-		fIncludePaths = new List(parent, SWT.NONE);
-		fDefineMacros = new List(parent, SWT.NONE);
-
-		// Includes
-
-		group = new Group(ths, SWT.SHADOW_NONE);
-		group.setLayout(createGridLayout(1, true, 2, 2));
-		group.setLayoutData(new GridData(GridData.FILL_BOTH));
-		group.setText(("Include_Paths_1")); //$NON-NLS-1$
-
-		cmpGroup = new Composite(group, SWT.NONE);
-		cmpGroup.setLayout(createGridLayout(1, true, 2, 2));
-		cmpGroup.setLayoutData(new GridData(GridData.FILL_BOTH));
-
-		cmpCtrls = new Composite(cmpGroup, SWT.NONE);
-		cmpCtrls.setLayout(createGridLayout(2, false, 2, 2));
-		cmpCtrls.setLayoutData(new GridData(GridData.FILL_BOTH));
-
-		table = new Table(cmpCtrls, SWT.BORDER | SWT.SINGLE | SWT.HIDE_SELECTION);
-		table.setLayout(new GridLayout());
-		table.setLayoutData(new GridData(GridData.FILL_BOTH));
-
-		table.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent e) {
-				handleIncludeTableSelectionChanged();
-			}
-		});
-
-		fIncludeTable 	= table;
-		cmpButtons 		= new Composite(cmpCtrls, SWT.NONE);
-		gridLayout 		= createGridLayout(1, true, 2, 2);
-		gridData		= new GridData();
-		gc 				= new GC(cmpButtons);
-		
-		gc.setFont(cmpButtons.getFont());
-		gridData.widthHint = gc.getFontMetrics().getAverageCharWidth() * 20;
-		gc.dispose();
-		cmpButtons.setLayout(gridLayout);
-		cmpButtons.setLayoutData(gridData);
-
-		button = new Button(cmpButtons, SWT.PUSH);
-		button.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); 
-		button.setEnabled(true);
-		button.setText(("Add_2")); //$NON-NLS-1$
-		button.addSelectionListener(new SelectionAdapter() {
-				public void widgetSelected(SelectionEvent e) {
-					handleIncludeAdd(e);
-				}
-			});
-		btnIncludeAdd = button;
-		
-		button = new Button(cmpButtons, SWT.PUSH);
-		button.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); 
-		button.setEnabled(true);
-		button.setText(("Remove_3")); //$NON-NLS-1$
-		button.addSelectionListener(new SelectionAdapter() {
-				public void widgetSelected(SelectionEvent e) {
-					handleIncludeRemove(e);
-				}
-			});
-		btnIncludeRemove = button;
-
-		button = new Button(cmpButtons, SWT.PUSH);
-		button.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); 
-		button.setEnabled(true);
-		button.setText(("Move_Up_4")); //$NON-NLS-1$
-		button.addSelectionListener(new SelectionAdapter() {
-				public void widgetSelected(SelectionEvent e) {
-					handleIncludeMoveUp(e);
-				}
-			});
-		btnIncludeMoveUp = button;
-
-		button = new Button(cmpButtons, SWT.PUSH);
-		button.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); 
-		button.setEnabled(true);
-		button.setText(("Move_Down_5")); //$NON-NLS-1$
-		button.addSelectionListener(new SelectionAdapter() {
-				public void widgetSelected(SelectionEvent e) {
-					handleIncludeMoveDown(e);
-				}
-			});
-		btnIncludeMoveDown = button;
-
-		// Defines
-
-		group = new Group(ths, SWT.SHADOW_NONE);
-		group.setLayout(createGridLayout(1, true, 2, 2));
-		group.setLayoutData(new GridData(GridData.FILL_BOTH));
-		group.setText(("Preprocessor_Definitions_6")); //$NON-NLS-1$
-
-		cmpGroup = new Composite(group, SWT.NONE);
-		cmpGroup.setLayout(createGridLayout(1, true, 2, 2));
-		cmpGroup.setLayoutData(new GridData(GridData.FILL_BOTH));
-
-		cmpCtrls = new Composite(cmpGroup, SWT.NONE);
-		cmpCtrls.setLayout(createGridLayout(2, false, 2, 2));
-		cmpCtrls.setLayoutData(new GridData(GridData.FILL_BOTH));
-
-		table = new Table(cmpCtrls, SWT.BORDER | SWT.SINGLE | SWT.HIDE_SELECTION);
-		TableLayout tblLayout = new TableLayout();
-		table.setLayout(tblLayout);
-		table.setHeaderVisible(true);
-		table.setLinesVisible(true);
-		table.setLayoutData(new GridData(GridData.FILL_BOTH));
-
-		column = new TableColumn(table, SWT.NULL);
-		column.setText(("Name_7")); //$NON-NLS-1$
-		tblLayout.addColumnData(new ColumnWeightData(30));
-
-		column = new TableColumn(table, SWT.NULL);
-		column.setText(("Value_8")); //$NON-NLS-1$
-		tblLayout.addColumnData(new ColumnWeightData(30));
-
-		table.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent e) {
-				handleDefineTableSelectionChanged();
-			}
-		});
-
-		fDefineTable 	= table;
-		cmpButtons 		= new Composite(cmpCtrls, SWT.NONE);
-		gridLayout 		= createGridLayout(1, true, 2, 2);
-		gridData		= new GridData();
-		gc 				= new GC(cmpButtons);
-		
-		gc.setFont(cmpButtons.getFont());
-		gridData.widthHint = gc.getFontMetrics().getAverageCharWidth() * 20;
-		gc.dispose();
-		cmpButtons.setLayout(gridLayout);
-		cmpButtons.setLayoutData(gridData);
-
-		button = new Button(cmpButtons, SWT.PUSH);
-		button.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); 
-		button.setEnabled(true);
-		button.setText(("Add_9")); //$NON-NLS-1$
-		button.addSelectionListener(new SelectionAdapter() {
-				public void widgetSelected(SelectionEvent e) {
-					handleDefineAdd(e);
-				}
-			});
-		btnDefineAdd = button;
-
-		button = new Button(cmpButtons, SWT.PUSH);
-		button.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); 
-		button.setEnabled(true);
-		button.setText(("Remove_10")); //$NON-NLS-1$
-		button.addSelectionListener(new SelectionAdapter() {
-				public void widgetSelected(SelectionEvent e) {
-					handleDefineRemove(e);
-				}
-			});
-		btnDefineRemove = button;
-
-		button = new Button(cmpButtons, SWT.PUSH);
-		button.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); 
-		button.setEnabled(true);
-		button.setText(("Edit_11")); //$NON-NLS-1$
-		button.addSelectionListener(new SelectionAdapter() {
-				public void widgetSelected(SelectionEvent e) {
-					handleDefineEdit(e);
-				}
-			});
-		btnDefineEdit = button;
-		
-		// Since no paths or macros have been added yet, disabled the following buttons.
-		btnDefineEdit.setEnabled(false);
-		btnDefineRemove.setEnabled(false);
-		btnIncludeMoveDown.setEnabled(false);
-		btnIncludeMoveUp.setEnabled(false);
-		btnIncludeRemove.setEnabled(false);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.cdt.ui.builder.ICToolTab#initializeFrom(ICBuildConfig)
-	 */
-	public void initializeFrom(ICBuildConfig config) {
-		
-		java.util.List includes = null;
-		java.util.List defines = null;
-		
-		try {
-			includes = config.getAttribute(ICPosixBuildConstants.CPP_INCLUDES, (java.util.List) null);
-			defines = config.getAttribute(ICPosixBuildConstants.CPP_DEFINITIONS, (java.util.List) null);
-		} catch (CoreException e) {
-		}
-
-		if (includes != null) {
-			for (Iterator iter = includes.iterator(); iter.hasNext();) {
-				TableItem item = new TableItem(fIncludeTable, SWT.NONE);
-				item.setText((String) iter.next());
-			}
-		}
-		
-		if (defines != null) {
-			for (Iterator iter = defines.iterator(); iter.hasNext();) {
-				TableItem item = new TableItem(fDefineTable, SWT.NONE);
-	
-				String	define	= (String) iter.next();
-				int 	index	= define.indexOf('=');
-	
-				if (-1 == index) {
-					item.setText(0, define.trim());
-				} else {
-					item.setText(0, define.substring(0, index).trim());
-					if (index < define.length()) {
-						item.setText(1, define.substring(index + 1).trim());
-					}
-				}
-			}
-		}
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.cdt.ui.builder.ICToolTab#performApply(ICBuildConfigWorkingCopy)
-	 */
-	public void performApply(ICBuildConfigWorkingCopy config) {
-		TableItem[]	includes = fIncludeTable.getItems();
-		TableItem[]	defines  = fDefineTable.getItems();
-		java.util.List includeList = new java.util.Vector();
-		java.util.List defineList = new java.util.Vector();
-
-		for (int i = 0; i < includes.length; i++) {
-			includeList.add(includes[i].getText());
-		}
-
-		for (int i = 0; i < defines.length; i++) {
-			String name  = defines[i].getText(0);
-			String value = defines[i].getText(1);
-			if (value.length() > 0) {
-				defineList.add(name + "=" + value);
-			} else {
-				defineList.add(name);
-			}
-		}
-
-		config.setAttribute(ICPosixBuildConstants.CPP_INCLUDES, includeList);
-		config.setAttribute(ICPosixBuildConstants.CPP_DEFINITIONS, defineList);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.cdt.ui.builder.ICToolTab#setDefaults(ICBuildConfigWorkingCopy)
-	 */
-	public void setDefaults(ICBuildConfigWorkingCopy configuration) {
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.cdt.ui.builder.ICToolTab#isValid(ICBuildConfigWorkingCopy)
-	 */
-	public boolean isValid(ICBuildConfigWorkingCopy config) {
-		return true;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.cdt.ui.builder.ICToolTab#getName()
-	 */
-	public String getName() {
-		return "Preprocessor";
-	}
-}
\ No newline at end of file
Index: build/org/eclipse/cdt/ui/builder/ACToolTab.java
===================================================================
RCS file: build/org/eclipse/cdt/ui/builder/ACToolTab.java
diff -N build/org/eclipse/cdt/ui/builder/ACToolTab.java
--- build/org/eclipse/cdt/ui/builder/ACToolTab.java	17 Feb 2003 19:13:07 -0000	1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,195 +0,0 @@
-/**********************************************************************
- * Copyright (c) 2002,2003 Timesys 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: 
- * Timesys - Initial API and implementation
- **********************************************************************/
-
-package org.eclipse.cdt.ui.builder;
-import org.eclipse.debug.internal.ui.SWTUtil;
-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.Label;
-import org.eclipse.swt.widgets.Shell;
-
-/**
- * Base tool tab implementation.
- */
-public abstract class ACToolTab implements ICToolTab {
-
-	/**
-	 * The control for this page, or <code>null</code>
-	 */
-	private Control fControl;
-
-	/**
-	 * The configuration dialog this tab is contained in.
-	 */
-	private ICBuildConfigDialog fConfigurationDialog;
-	
-	/**
-	 * Current error message, or <code>null</code>
-	 */
-	private String fErrorMessage;
-	
-	/**
-	 * Current message, or <code>null</code>
-	 */
-	private String fMessage;
-		
-	/**
-	 * Returns the dialog this tab is contained in, or
-	 * <code>null</code> if not yet set.
-	 * 
-	 * @return configuration dialog, or <code>null</code>
-	 */
-	protected ICBuildConfigDialog getConfigurationDialog() {
-		return fConfigurationDialog;
-	}	
-		
-	/**
-	 * Updates the buttons and message in this page's configuration dialog.
-	 */
-	protected void updateConfigurationDialog() {
-		if (getConfigurationDialog() != null) {
-			getConfigurationDialog().updateButtons();
-			getConfigurationDialog().updateMessage();
-		}
-	}
-				
-	/**
-	 * @see ICToolTab#getControl()
-	 */
-	public Control getControl() {
-		return fControl;
-	}
-
-	/**
-	 * Sets the control to be displayed in this tab.
-	 * 
-	 * @param control the control for this tab
-	 */
-	protected void setControl(Control control) {
-		fControl = control;
-	}
-
-	/**
-	 * @see ICToolTab#getErrorMessage()
-	 */
-	public String getErrorMessage() {
-		return fErrorMessage;
-	}
-
-	/**
-	 * @see ICToolTab#getMessage()
-	 */
-	public String getMessage() {
-		return fMessage;
-	}
-
-	/**
-	 * @see ICToolTab#setConfigurationDialog(ICBuildConfigDialog)
-	 */
-	public void setConfigurationDialog(ICBuildConfigDialog dialog) {
-		fConfigurationDialog = dialog;
-	}
-	
-	/**
-	 * Sets this page's error message, possibly <code>null</code>.
-	 * 
-	 * @param errorMessage the error message or <code>null</code>
-	 */
-	protected void setErrorMessage(String errorMessage) {
-		fErrorMessage = errorMessage;
-	}
-
-	/**
-	 * Sets this page's message, possibly <code>null</code>.
-	 * 
-	 * @param message the message or <code>null</code>
-	 */
-	protected void setMessage(String message) {
-		fMessage = message;
-	}
-	
-	/**
-	 * By default, do nothing.
-	 * 
-	 * @see ICToolTab#dispose()
-	 */
-	public void dispose() {
-	}
-	
-	/**
-	 * Returns the shell this tab is contained in, or <code>null</code>.
-	 * 
-	 * @return the shell this tab is contained in, or <code>null</code>
-	 */
-	protected Shell getShell() {
-		Control control = getControl();
-		if (control != null) {
-			return control.getShell();
-		}
-		return null;
-	}
-	
-	/**
-	 * Creates and returns a new push button with the given
-	 * label and/or image.
-	 * 
-	 * @param parent parent control
-	 * @param label button label or <code>null</code>
-	 * @param image image of <code>null</code>
-	 * 
-	 * @return a new push button
-	 */
-	protected Button createPushButton(Composite parent, String label, Image image) {
-		return SWTUtil.createPushButton(parent, label, image);	
-	}
-	
-	/**
-	 * Creates and returns a new radio button with the given
-	 * label and/or image.
-	 * 
-	 * @param parent parent control
-	 * @param label button label or <code>null</code>
-	 * 
-	 * @return a new radio button
-	 */
-	protected Button createRadioButton(Composite parent, String label) {
-		return SWTUtil.createRadioButton(parent, label);	
-	}	
-	
-	/**
-	 * @see ICToolTab#canSave()
-	 */
-	public boolean canSave() {
-		return true;
-	}
-	
-	/**
-	 * Create some empty space.
-	 */
-	protected void createVerticalSpacer(Composite comp, int colSpan) {
-		Label label = new Label(comp, SWT.NONE);
-		GridData gd = new GridData();
-		gd.horizontalSpan = colSpan;
-		label.setLayoutData(gd);
-	}	
-
-	/**
-	 * @see ICToolTab#getImage()
-	 */
-	public Image getImage() {
-		return null;
-	}
-
-}
Index: build/org/eclipse/cdt/ui/builder/ACToolTabGroup.java
===================================================================
RCS file: build/org/eclipse/cdt/ui/builder/ACToolTabGroup.java
diff -N build/org/eclipse/cdt/ui/builder/ACToolTabGroup.java
--- build/org/eclipse/cdt/ui/builder/ACToolTabGroup.java	17 Feb 2003 19:13:07 -0000	1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,90 +0,0 @@
-/**********************************************************************
- * Copyright (c) 2002,2003 Timesys 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: 
- * Timesys - Initial API and implementation
- **********************************************************************/
-
-package org.eclipse.cdt.ui.builder;
-import org.eclipse.cdt.core.builder.model.ICBuildConfig;
-import org.eclipse.cdt.core.builder.model.ICBuildConfigWorkingCopy;
-
-/**
- * Base tool tab group implementation.
- */
-public abstract class ACToolTabGroup implements ICToolTabGroup {
-
-	/**
-	 * The tabs in this tab group, or <code>null</code> if not yet instantiated.
-	 */
-	protected ICToolTab[] fTabs = null;
-	
-	/**
-	 * @see org.eclipse.cdt.ui.builder.ICToolTabGroup#getTabs()
-	 */
-	public ICToolTab[] getTabs() {
-		return fTabs;
-	}
-
-	/**
-	 * Sets the tabs in this group
-	 * 
-	 * @param tabs the tabs in this group
-	 */
-	protected void setTabs(ICToolTab[] tabs) {
-		fTabs = tabs;
-	}
-
-	/**
-	 * By default, dispose all the tabs in this group.
-	 * 
-	 * @see org.eclipse.cdt.ui.builder.ICToolTabGroup#dispose()
-	 */
-	public void dispose() {
-		ICToolTab[] tabs = getTabs();
-		for (int i = 0; i < tabs.length; i++) {
-			tabs[i].dispose();
-		}
-	}
-
-	/**
-	 * By default, delegate to all of the tabs in this group.
-	 * 
-	 * @see org.eclipse.cdt.ui.builder.ICToolTabGroup#setDefaults(ICBuildConfigWorkingCopy)
-	 */
-	public void setDefaults(ICBuildConfigWorkingCopy configuration) {
-		ICToolTab[] tabs = getTabs();
-		for (int i = 0; i < tabs.length; i++) {
-			tabs[i].setDefaults(configuration);
-		}		
-	}
-
-	/**
-	 * By default, delegate to all of the tabs in this group.
-	 * 
-	 * @see org.eclipse.cdt.ui.builder.ICToolTabGroup#initializeFrom(ICBuildConfig)
-	 */
-	public void initializeFrom(ICBuildConfig configuration) {
-		ICToolTab[] tabs = getTabs();
-		for (int i = 0; i < tabs.length; i++) {
-			tabs[i].initializeFrom(configuration);
-		}		
-	}
-
-	/**
-	 * By default, delegate to all of the tabs in this group.
-	 * 
-	 * @see org.eclipse.cdt.ui.builder.ICToolTabGroup#performApply(ICBuildConfigWorkingCopy)
-	 */
-	public void performApply(ICBuildConfigWorkingCopy configuration) {
-		ICToolTab[] tabs = getTabs();
-		for (int i = 0; i < tabs.length; i++) {
-			tabs[i].performApply(configuration);
-		}		
-	}
-
-}
Index: build/org/eclipse/cdt/ui/builder/ICBuildConfigDialog.java
===================================================================
RCS file: build/org/eclipse/cdt/ui/builder/ICBuildConfigDialog.java
diff -N build/org/eclipse/cdt/ui/builder/ICBuildConfigDialog.java
--- build/org/eclipse/cdt/ui/builder/ICBuildConfigDialog.java	17 Feb 2003 19:13:07 -0000	1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,62 +0,0 @@
-/**********************************************************************
- * Copyright (c) 2002,2003 Timesys 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: 
- * Timesys - Initial API and implementation
- **********************************************************************/
-
-package org.eclipse.cdt.ui.builder;
-
-/**
- * A tool settings dialog is used to edit/view parameters passed
- * to a tool as part of a C/'C++ build step. It contains a build
- * configuration tab group.
- * 
- * @see ICToolTabGroup
- * @see ICToolTab
- */
-public interface ICBuildConfigDialog {
-
-	/**
-	 * Adjusts the enable state of this dialog's buttons
-	 * to reflect the state of the active tab group.
-	 * <p>
-	 * This may be called by to force a button state update.
-	 */
-	public void updateButtons();
-	
-	/**
-	 * Updates the message (or error message) shown in the message line
-	 * to  reflect the state of the currently active tab in the dialog.
-	 * <p>
-	 * This method may be called to force a message update.
-	 */
-	public void updateMessage();
-	
-	/**
-	 * Sets the contents of the name field to the given name.
-	 * 
-	 * @param name new name value
-	 */ 
-	public void setName(String name);
-	
-	/**
-	 * Returns the tabs currently being displayed, or
-	 * <code>null</code> if none.
-	 * 
-	 * @return currently displayed tabs, or <code>null</code>
-	 */
-	public ICToolTab[] getTabs();
-	
-	/**
-	 * Returns the currently active <code>ICToolTab</code>
-	 * being displayed, or <code>null</code> if there is none.
-	 * 
-	 * @return currently active <code>ICToolTab</code>, or <code>null</code>.
-	 */
-	public ICToolTab getActiveTab();
-}
Index: build/org/eclipse/cdt/ui/builder/ICToolTab.java
===================================================================
RCS file: build/org/eclipse/cdt/ui/builder/ICToolTab.java
diff -N build/org/eclipse/cdt/ui/builder/ICToolTab.java
--- build/org/eclipse/cdt/ui/builder/ICToolTab.java	17 Feb 2003 19:13:07 -0000	1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,159 +0,0 @@
-/**********************************************************************
- * Copyright (c) 2002,2003 Timesys 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: 
- * Timesys - Initial API and implementation
- **********************************************************************/
-
-package org.eclipse.cdt.ui.builder;
-import org.eclipse.cdt.core.builder.model.ICBuildConfig;
-import org.eclipse.cdt.core.builder.model.ICBuildConfigWorkingCopy;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-
-/**
- * A tool settings configuration tab group is used to edit/view
- * parameters passed to a tool as part of a C/'C++ build step.
- * CToolPoint settings are presented in a dialog with a tab folder.
- * Each tab presents UI elements appropriate for manipulating
- * a set of parameters for a tool.
- * <p>
- * This interface is intended to be implemented by clients.
- */
-public interface ICToolTab {
-
-	/**
-	 * Creates the top level control for this settings tab under
-	 * the given parent composite.  This method is called once on
-	 * tab creation, after <code>setConfigurationDialog</code>
-	 * is called.
-	 * <p>
-	 * Implementors are responsible for ensuring that
-	 * the created control can be accessed via <code>getControl</code>
-	 * </p>
-	 *
-	 * @param parent the parent composite
-	 */
-	public void createControl(Composite parent);
-	
-	/**
-	 * Returns the top level control for this tab.
-	 * <p>
-	 * May return <code>null</code> if the control
-	 * has not been created yet.
-	 * </p>
-	 *
-	 * @return the top level control or <code>null</code>
-	 */
-	public Control getControl();	
-	
-	/**
-	 * Initializes the given configuration with default values
-	 * for this tab. This method is called when a new configuration
-	 * is created such that the configuration can be initialized with
-	 * meaningful values. This method may be called before this
-	 * tab's control is created.
-	 * 
-	 * @param configuration configuration
-	 */
-	public void setDefaults(ICBuildConfigWorkingCopy configuration);	
-	
-	/**
-	 * Initializes this tab's controls with values from the given
-	 * configuration. This method is called when a configuration is
-	 * selected to view or edit, after thistab's control has been
-	 * created.
-	 * 
-	 * @param configuration configuration
-	 */
-	public void initializeFrom(ICBuildConfig configuration);		
-	
-	/**
-	 * Notifies this configuration tab that it has been disposed. Marks
-	 * the end of this tab's lifecycle, allowing this tab to perform any
-	 * cleanup required.
-	 */
-	public void dispose();
-	
-	/**
-	 * Copies values from this tab into the given configuration.
-	 * 
-	 * @param configuration configuration
-	 */
-	public void performApply(ICBuildConfigWorkingCopy configuration);
-	
-	/**
-	 * Returns the current error message for this tab.
-	 * May be <code>null</code> to indicate no error message.
-	 * <p>
-	 * An error message should describe some error state,
-	 * as opposed to a message which may simply provide instruction
-	 * or information to the user.
-	 * </p>
-	 * 
-	 * @return the error message, or <code>null</code> if none
-	 */
-	public String getErrorMessage();
-	
-	/**
-	 * Returns the current message for this tab.
-	 * <p>
-	 * A message provides instruction or information to the 
-	 * user, as opposed to an error message which should 
-	 * describe some error state.
-	 * </p>
-	 * 
-	 * @return the message, or <code>null</code> if none
-	 */
-	public String getMessage();	
-	
-	/**
-	 * Returns whether this tab is in a state that allows the configuration
-	 * whose values this tab is showing to be saved.
-	 * <p>
-	 * This information is typically used by the configuration dialog to
-	 * decide when it is okay to save a configuration.
-	 * </p>
-	 * 
-	 * @return whether this tab is in a state that allows the current
-	 *          configuration to be saved
-	 */
-	public boolean canSave();
-	
-	/**
-	 * Sets the configuration dialog that hosts this tab.  This is the
-	 * first method called on a configuration tab, and marks the beginning
-	 * of this tab's lifecycle.
-	 * 
-	 * @param dialog configuration dialog
-	 */
-	public void setConfigurationDialog(ICBuildConfigDialog dialog);
-	
-	/**
-	 * Returns the name of this tab.
-	 * 
-	 * @return the name of this tab
-	 */
-	public String getName();
-	
-	/**
-	 * Returns the image for this tab, or <code>null</code> if none
-	 * 
-	 * @return the image for this tab, or <code>null</code> if none
-	 */
-	public Image getImage();	
-
-	/**
-	 * Returns true if the current contents of a tab are valid.
-	 * 
-	 * @param config build configuration.
-	 * @return boolean true if tab contents are valid, fale if not.
-	 */
-	boolean isValid(ICBuildConfigWorkingCopy config);
-
-}
Index: build/org/eclipse/cdt/ui/builder/ICToolTabGroup.java
===================================================================
RCS file: build/org/eclipse/cdt/ui/builder/ICToolTabGroup.java
diff -N build/org/eclipse/cdt/ui/builder/ICToolTabGroup.java
--- build/org/eclipse/cdt/ui/builder/ICToolTabGroup.java	17 Feb 2003 19:13:07 -0000	1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,83 +0,0 @@
-/**********************************************************************
- * Copyright (c) 2002,2003 Timesys 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: 
- * Timesys - Initial API and implementation
- **********************************************************************/
-
-package org.eclipse.cdt.ui.builder;
-
-import org.eclipse.cdt.core.builder.model.ICBuildConfig;
-import org.eclipse.cdt.core.builder.model.ICBuildConfigWorkingCopy;
-
-/**
- * A tool settings configuration tab group is used to edit/view
- * parameters passed to a tool as part of a C/'C++ build step.
- * CToolPoint settings are presented in a dialog with a tab folder.
- * Each tab presents UI elements appropriate for manipulating
- * a set of parameters for a tool.
- * <p>
- * The tab group controls which tabs are displayed for a specific
- * tool, and provides a mechanism for overriding configuration
- * initialization performed by tabs.
- * <p>
- * This interface is intended to be implemented by clients.
- * <p>
- * (Mercilessly modeled on the Eclipse launch mechanism.)
- */
-public interface ICToolTabGroup {
-
-	/**
-	 * Creates the tabs contained in this tab group. The tabs control's
-	 * are not created. This is the first method called in the lifecycle
-	 * of a tab group.
-	 * 
-	 * @param dialog the tool settings dialog this tab group is contained in
-	 */
-	public void createTabs(ICBuildConfigDialog dialog);
-
-	/**
-	 * Returns the tabs contained in this tab group.
-	 * 
-	 * @return the tabs contained in this tab group
-	 */
-	public ICToolTab[] getTabs();
-
-	/**
-	 * Notifies this tab group that it has been disposed, and disposes
-	 * of this group's tabs. Marks the end of this tab group's lifecycle,
-	 * allowing this tab group to perform any cleanup required.
-	 */
-	public void dispose();
-
-	/**
-	 * Initializes the given build configuration with default values
-	 * for this tab group. This method is called when a new build
-	 * configuration is created such that the configuration can be
-	 * initialized with meaningful values. This method may be called
-	 * before tab controls are created.
-	 * 
-	 * @param configuration build configuration
-	 */
-	public void setDefaults(ICBuildConfigWorkingCopy configuration);
-
-	/**
-	 * Initializes this group's tab controls with values from the given
-	 * build configuration. This method is called when a configuration
-	 * is selected to view or edit.
-	 * 
-	 * @param configuration build configuration
-	 */
-	public void initializeFrom(ICBuildConfig configuration);
-
-	/**
-	 * Copies values from this group's tabs into the given build configuration.
-	 * 
-	 * @param configuration build configuration
-	 */
-	public void performApply(ICBuildConfigWorkingCopy configuration);
-}
Index: build/org/eclipse/cdt/ui/builder/ICToolTabGroupPoint.java
===================================================================
RCS file: build/org/eclipse/cdt/ui/builder/ICToolTabGroupPoint.java
diff -N build/org/eclipse/cdt/ui/builder/ICToolTabGroupPoint.java
--- build/org/eclipse/cdt/ui/builder/ICToolTabGroupPoint.java	17 Feb 2003 19:13:07 -0000	1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,44 +0,0 @@
-/**********************************************************************
- * Copyright (c) 2002,2003 Timesys 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: 
- * Timesys - Initial API and implementation
- **********************************************************************/
-
-package org.eclipse.cdt.ui.builder;
-
-import org.eclipse.core.runtime.CoreException;
-
-/**
- * Interface representing an instance of
- * a CToolTabGroup extension point.
- */
-public interface ICToolTabGroupPoint {
-
-	/**
-	 * Returns the unique id for the provider.
-	 * 
-	 * @return unique id.
-	 */
-	public String getId();
-
-	/**
-	 * Returns the name of the provider's
-	 * implementing class.
-	 * 
-	 * @return name of the provider's implementing class.
-	 */
-	public String getProviderClassName();
-
-	/**
-	 * Returns an instance of the provider's
-	 * implementing class.
-	 * 
-	 * @return instance of ICToolTabGroup.
-	 */
-	public ICToolTabGroup getProvider() throws CoreException;
-}
Index: build/org/eclipse/cdt/ui/builder/internal/CBuildConfigDialog.java
===================================================================
RCS file: build/org/eclipse/cdt/ui/builder/internal/CBuildConfigDialog.java
diff -N build/org/eclipse/cdt/ui/builder/internal/CBuildConfigDialog.java
--- build/org/eclipse/cdt/ui/builder/internal/CBuildConfigDialog.java	17 Feb 2003 19:13:07 -0000	1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,1778 +0,0 @@
-/**********************************************************************
- * Copyright (c) 2002,2003 Timesys 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: 
- * Based on org.eclipse.debug.org.eclipse.cdt.ui.builder.internal.ui.launchConfigurations.LaunchConfigurationDialog.
- * Timesys - Initial API and implementation
- **********************************************************************/
-
-package org.eclipse.cdt.ui.builder.internal;
-
-import java.util.Iterator;
-import java.util.Map;
-
-import org.eclipse.cdt.core.builder.BuilderPlugin;
-import org.eclipse.cdt.core.builder.model.ICBuildConfig;
-import org.eclipse.cdt.core.builder.model.ICBuildConfigManager;
-import org.eclipse.cdt.core.builder.model.ICBuildConfigWorkingCopy;
-import org.eclipse.cdt.core.builder.model.ICTool;
-import org.eclipse.cdt.core.builder.model.ICToolType;
-import org.eclipse.cdt.internal.ui.util.SWTUtil;
-import org.eclipse.cdt.ui.CUIPlugin;
-import org.eclipse.cdt.ui.builder.ICBuildConfigDialog;
-import org.eclipse.cdt.ui.builder.ICToolTab;
-import org.eclipse.cdt.ui.builder.ICToolTabGroup;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.debug.internal.ui.PixelConverter;
-import org.eclipse.jface.dialogs.ErrorDialog;
-import org.eclipse.jface.dialogs.IDialogConstants;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.jface.dialogs.TitleAreaDialog;
-import org.eclipse.jface.preference.IPreferenceStore;
-import org.eclipse.jface.resource.JFaceResources;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.IStructuredContentProvider;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.jface.viewers.ListViewer;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.BusyIndicator;
-import org.eclipse.swt.custom.SashForm;
-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.graphics.Cursor;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.graphics.Rectangle;
-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.Label;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.TabFolder;
-import org.eclipse.swt.widgets.TabItem;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.ui.help.WorkbenchHelp;
-import org.eclipse.ui.model.WorkbenchViewerSorter;
-
-/**
- * @author sam.robb
- * 
- * The dialog used to edit build configurations.
- */
-public class CBuildConfigDialog extends TitleAreaDialog 
-										implements ICBuildConfigDialog {
-
-	/**
-	 * List of tools available to thsi configuration
-	 */
-	private ListViewer fToolList;
-	
-	/**
-	 * The workbench context present when this dialog is opened.
-	 */
-	private Object fContext;
-	
-	/**
-	 * The IResource corresponding to <code>fContext</code>.
-	 */
-	private IResource fResourceContext;
-	
-	/**
-	 * The Composite used to insert an adjustable 'sash' between the tree and the tabs.
-	 */
-	private SashForm fSashForm;
-	
-	/**
-	 * Default weights for the SashForm that specify how wide the selection and
-	 * edit areas aree relative to each other.
-	 */
-	private static final int[] DEFAULT_SASH_WEIGHTS = new int[] {11, 30};
-	
-	/**
-	 * The tool selection area.
-	 */
-	private Composite fSelectionArea;	
-	
-	/**
-	 * The tool configuration edit area.
-	 */
-	private Composite fEditArea;
-	
-	/**
-	 * The 'apply' button
-	 */
-	private Button fApplyButton;	
-	
-	/**
-	 * The 'revert' button
-	 */
-	private Button fRevertButton;
-	
-	/**
-	 * The text widget displaying the name of the
-	 * build configuration under edit
-	 */
-	private Text fNameText;
-	
-	private String fLastSavedName = null;
-	
-	/**
-	 * Container for the edit area <code>TabFolder</code>
-	 */
-	private Composite fTabComposite;
-	
-	/**
-	 * The tab folder that contains tabs for the selected configuration
-	 */
-	private TabFolder fTabFolder;
-	
-	/**
-	 * Flag that indicates when the tabs are being disposed.
-	 */
-	private boolean fDisposingTabs = false;
-	
-	/**
-	 * The current (working copy) build configuration
-	 * being displayed/edited or <code>null</code> if
-	 * none
-	 */
-	private ICBuildConfigWorkingCopy fWorkingCopy;
-	
-	/**
-	 * The actual (non-working copy) build configuration that underlies the current working copy
-	 */
-	private ICBuildConfig fUnderlyingConfig;
-	
-	/**
-	 * The current tab group being displayed
-	 */
-	private ICToolTabGroup fTabGroup;
-	
-	/**
-	 * The type of tool tabs are currently displayed for
-	 */
-	private ICToolType fToolType;
-	
-	/** 
-	 * The index of the currently selected tab
-	 */
-	private int fCurrentTabIndex;
-	
-	private Cursor waitCursor;
-	private Cursor arrowCursor;
-	private MessageDialog fWindowClosingDialog;
-	
-	/**
-	 * Whether initlialing tabs
-	 */
-	private boolean fInitializingTabs = false;
-		
-	/**
-	 * Indicates if selection changes in the tree should be ignored
-	 */
-	private boolean fIgnoreSelectionChanges = false;
-	
-	/**
-	 * Previously selected element in the tree
-	 */
-	private Object fSelectedTreeObject;
-	
-	/**
-	 * The number of 'long-running' operations currently taking place in this dialog
-	 */	
-	private long fActiveRunningOperations = 0;
-		
-	/**
-	 * Id for 'Close' button.
-	 */
-	protected static final int ID_CLOSE_BUTTON = IDialogConstants.CLIENT_ID + 1;
-	
-	/**
-	 * Id for 'Cancel' button.
-	 */
-	protected static final int ID_CANCEL_BUTTON = IDialogConstants.CLIENT_ID + 2;
-	
-	/**
-	 * Constrant String used as key for setting and retrieving current Control with focus
-	 */
-	private static final String FOCUS_CONTROL = "focusControl";//$NON-NLS-1$
-
-	/**
-	 * The height in pixels of this dialog's progress indicator
-	 */
-	private static int PROGRESS_INDICATOR_HEIGHT = 18;
-
-	/**
-	 * Constant specifying how wide this dialog is allowed to get (as a percentage of
-	 * total available screen width) as a result of tab labels in the edit area.
-	 */
-	private static final float MAX_DIALOG_WIDTH_PERCENT = 0.75f;
-
-	/**
-	 * Empty array
-	 */
-	protected static final Object[] EMPTY_ARRAY = new Object[0];	
-	
-	protected static final String DEFAULT_NEW_CONFIG_NAME = "New configuration";
-	
-	/**
-	 * Size of this dialog if there is no preference specifying a size.
-	 */
-	protected static final Point DEFAULT_INITIAL_DIALOG_SIZE = new Point(620, 560);
-
-	private String fCantSaveErrorMessage;
-
-	private static String DIALOG_SASH_WEIGHTS = CUIPlugin.getPluginId() + ".buildConfigurationDialogSashWeights";
-	private static String DIALOG_LOCATION = CUIPlugin.getPluginId() + ".buildConfigurationDialogLocation";
-	private static String DIALOG_SIZE = CUIPlugin.getPluginId() + ".buildConfigurationDialogSize";
-
-	/**
-	 * Constructs a new build configuration dialog on the given
-	 * parent shell.
-	 * 
-	 * @param shell the parent shell
-	 * @param selection the selection used to initialize this dialog, typically the 
-	 *  current workbench selection
-	 * @param config onfiguration to edit.
-	 */
-	public CBuildConfigDialog(Shell shell, ICBuildConfig config) {
-		super(shell);
-		setShellStyle(getShellStyle() | SWT.RESIZE);
-		fUnderlyingConfig = config;
-		try {
-			setWorkingCopy(config.copy(config.getName()));
-		} catch (CoreException e) {
-		}
-	}
-
-	/**
-	 * A build configuration dialog overrides this method
-	 * to create a custom set of buttons in the button bar.
-	 * 
-	 * @see org.eclipse.jface.dialogs.Dialog#createButtonsForButtonBar(Composite)
-	 */
-	protected void createButtonsForButtonBar(Composite parent) {
-		createButton(parent, ID_CLOSE_BUTTON, "Close", false);
-	}
-	
-	/**
-	 * @see Dialog#buttonPressed(int)
-	 */
-	protected void buttonPressed(int buttonId) {
-		if (buttonId == ID_CLOSE_BUTTON) {
-			handleClosePressed();
-		} else {
-			super.buttonPressed(buttonId);
-		}
-	}
-
-	/**
-	 * Returns the appropriate text for the build button
-	 */
-	protected String getBuildButtonText() {
-		return ("B&uild");
-	}
-
-	/**
-	 * @see Dialog#createContents(Composite)
-	 */
-	protected Control createContents(Composite parent) {
-		Control contents = super.createContents(parent);
-		initializeBounds();
-		initializeSashForm();
-		doInitialListSelection();
-		return contents;
-	}
-
-	/**
-	 * Initialize the relative weights (widths) of the 2 sides of the sash.
-	 */
-	protected void initializeSashForm() {
-		int[] sashWeights = DEFAULT_SASH_WEIGHTS;
-		String sashWeightString = getPreferenceStore().getString(DIALOG_SASH_WEIGHTS);
-		if (sashWeightString.length() > 0) {
-			Point sashWeightPoint = parseCoordinates(sashWeightString);
-			if (sashWeightPoint != null) {
-				sashWeights[0] = sashWeightPoint.x;
-				sashWeights[1] = sashWeightPoint.y;
-			}
-		}
-		getSashForm().setWeights(sashWeights);
-	}
-
-	/**
-	 * Set the initial selection in the tree.
-	 */
-	protected void doInitialListSelection() {
-		// getListViewer().setSelection(null);
-	}
-	
-	/**
-	 * Write out this dialog's Shell size, location & sash weights to the preference store.
-	 */
-	protected void persistShellGeometry() {
-		Point shellLocation = getShell().getLocation();
-		Point shellSize = getShell().getSize();
-		int[] sashWeights = getSashForm().getWeights();
-		String locationString = serializeCoords(shellLocation);
-		String sizeString = serializeCoords(shellSize);
-		String sashWeightString = serializeCoords(new Point(sashWeights[0], sashWeights[1]));
-		getPreferenceStore().setValue(DIALOG_LOCATION, locationString);
-		getPreferenceStore().setValue(DIALOG_SIZE, sizeString);
-		getPreferenceStore().setValue(DIALOG_SASH_WEIGHTS, sashWeightString);
-	}
-	
-	/**
-	 * @see Window#close()
-	 */
-	public boolean close() {
-		persistShellGeometry();
-		return super.close();
-	}
-	
-	/**
-	 * @see org.eclipse.jface.dialogs.Dialog#createDialogArea(Composite)
-	 */
-	protected Control createDialogArea(Composite parent) {
-		GridData gd;
-		Composite dialogComp = (Composite)super.createDialogArea(parent);
-		Composite topComp = new Composite(dialogComp, SWT.NONE);
-		gd = new GridData(GridData.FILL_BOTH);
-		topComp.setLayoutData(gd);
-		GridLayout topLayout = new GridLayout();
-		topLayout.numColumns = 2;
-		topLayout.marginHeight = 5;
-		topLayout.marginWidth = 0;
-		topComp.setLayout(topLayout);
-
-		// Set the things that TitleAreaDialog takes care of
-		setTitle("Build Configuration");
-		setMessage(""); //$NON-NLS-1$
-
-		// Create the SashForm that contains the selection area on the left,
-		// and the edit area on the right
-		setSashForm(new SashForm(topComp, SWT.NONE));
-		getSashForm().setOrientation(SWT.HORIZONTAL);
-		gd = new GridData(GridData.FILL_BOTH);
-		gd.horizontalSpan = 2;
-		getSashForm().setLayoutData(gd);
-		
-		// Create the build configuration selection area and put it into the composite.
-		Composite toolSelectionArea = createToolSelectionArea(getSashForm());
-		gd = new GridData(GridData.FILL_VERTICAL);
-		toolSelectionArea.setLayoutData(gd);
-	
-		// Create the build configuration edit area and put it into the composite.
-		Composite editAreaComp = createEditArea(getSashForm());
-		gd = new GridData(GridData.FILL_BOTH);
-		editAreaComp.setLayoutData(gd);
-			
-		// Build the separator line that demarcates the button bar
-		Label separator = new Label(topComp, SWT.HORIZONTAL | SWT.SEPARATOR);
-		gd = new GridData(GridData.FILL_HORIZONTAL);
-		gd.horizontalSpan = 2;
-		separator.setLayoutData(gd);
-		
-		dialogComp.layout(true);
-		
-		return dialogComp;
-	}
-
-	/**
-	 * Returns tab group for the given type of tool.
-	 * Tabs are initialized to be contained in this dialog.
-	 * 
-	 * @exception CoreException if unable to instantiate a tab group
-	 */
-	protected ICToolTabGroup createGroup(final ICToolType configType) throws CoreException {
-		// Use a final Object array to store the tab group and any exception that
-		// results from the Runnable
-		final Object[] finalArray = new Object[2]; 		
- 		Runnable runnable = new Runnable() {
- 			public void run() {
-		 		ICToolTabGroup tabGroup = null;
-				try {
-					tabGroup = CBuildConfigPresentationManager.getDefault().getTabGroup(configType);
-					finalArray[0] = tabGroup;
-				} catch (CoreException ce) {
-					finalArray[1] = ce;
-					return;
-				}
-		 		tabGroup.createTabs(CBuildConfigDialog.this);
-		 		ICToolTab[] tabs = tabGroup.getTabs();
-		 		for (int i = 0; i < tabs.length; i++) {
-		 			tabs[i].setConfigurationDialog(CBuildConfigDialog.this);
-		 		}
- 			}
- 		};
- 		
- 		// Creating the tabs can result in plugin loading, so we show the busy cursor
- 		BusyIndicator.showWhile(getDisplay(), runnable);
- 		
- 		// Re-throw any CoreException if there was one
- 		if (finalArray[1] != null) {
- 			throw (CoreException)finalArray[1];
- 		}
- 		
- 		// Otherwise return the tab group
- 		return (ICToolTabGroup)finalArray[0];
-	}
-	
-	/**
-	 * Convenience method to set the selection on the configuration tree.
-	 */
-	protected void setListViewerSelection(ISelection selection) {
-		getListViewer().setSelection(selection);
-	}
-	
-	private void setLastSavedName(String lastSavedName) {
-		this.fLastSavedName = lastSavedName;
-	}
-
-	private String getLastSavedName() {
-		return fLastSavedName;
-	}
-	
-	/**
-	 * Update buttons and message.
-	 */
-	protected void refreshStatus() {
-		updateButtons();
-		updateMessage();
-	}
-	
-	/**
-	 * Verify the attributes common to all build configuration.
-	 * Indicate failure by throwing a <code>CoreException</code>.
-	 */
-	protected void verifyStandardAttributes() throws CoreException {
-		verifyName();
-	}
-	
-	/**
-	 * Verify that the build configuration name is valid.
-	 */
-	protected void verifyName() throws CoreException {
-		String currentName = getNameTextWidget().getText().trim();
-
-		// If there is no name, complain
-		if (currentName.length() < 1) {
-			throw new CoreException(new Status(IStatus.ERROR,
-												 CUIPlugin.getPluginId(),
-												 0,
-												 "A name is required for this build configuration",
-												 null));			
-		}
-
-		// If the name hasn't changed from the last saved name, do nothing
-		if (currentName.equals(getLastSavedName())) {
-			return;
-		}	
-		
-		// See if name contains any 'illegal' characters
-		IStatus status = ResourcesPlugin.getWorkspace().validateName(currentName, IResource.FILE);
-		if (status.getCode() != IStatus.OK) {
-			throw new CoreException(new Status(IStatus.ERROR,
-												 CUIPlugin.getDefault().getDescriptor().getUniqueIdentifier(),
-												 0,
-												 status.getMessage(),
-												 null));									
-		}			
-		
-		// Otherwise, if there's already a config with the same name, complain
-		if (getBuildConfigManager().isExistingConfigurationName(fUnderlyingConfig.getProject(), currentName)) {
-			throw new CoreException(new Status(IStatus.ERROR,
-												 CUIPlugin.getDefault().getDescriptor().getUniqueIdentifier(),
-												 0,
-												 "A build configuration with this name already exists",
-												 null));						
-		}						
-	}
-	
-	/**
-	 * If the name is valid, rename the current build configuration.  Otherwise, show an
-	 * appropriate error message.
-	 */
-	protected void updateConfigFromName() {
-		if (getConfiguration() != null) {
-			try {
-				verifyName();
-			} catch (CoreException ce) {
-				refreshStatus();
-				return;				
-			}
-						
-			getConfiguration().rename(getNameTextWidget().getText().trim());
-			refreshStatus();
-		}
-	}
-	
-	protected Display getDisplay() {
-		Shell shell = getShell();
-		if (shell != null) {
-			return shell.getDisplay();
-		} else {
-			return Display.getDefault();
-		}
-	}
-
-	class ToolListElement {
-		private ICToolType fToolType;
-		public ToolListElement(Object o) {
-			fToolType = (ICToolType) o;
-		}
-		public String toString() {
-			return fToolType.getName();
-		}
-	}
-
-	class ToolListContentProvider implements IStructuredContentProvider {
-		/* (non-Javadoc)
-		 * @see org.eclipse.jface.viewers.IStructuredContentProvider#getElements(Object)
-		 */
-		public Object[] getElements(Object inputElement) {
-			Map types = BuilderPlugin.getDefault().getToolTypes();
-			Object[] objs = new Object[types.size()];
-			int i = 0;
-			for (Iterator iter = types.entrySet().iterator(); iter.hasNext(); i++) {
-				Map.Entry element = (Map.Entry) iter.next();
-				objs[i] = new ToolListElement(element.getValue());
-			}
-			return objs;
-		}
-
-		/* (non-Javadoc)
-		 * @see org.eclipse.jface.viewers.IContentProvider#dispose()
-		 */
-		public void dispose() {
-		}
-		
-		/* (non-Javadoc)
-		 * @see org.eclipse.jface.viewers.IContentProvider#inputChanged(Viewer, Object, Object)
-		 */
-		public void inputChanged(
-			Viewer viewer,
-			Object oldInput,
-			Object newInput) {
-		}
-
-	}
-
-	class ToolListLabelProvider extends LabelProvider {
-		/* (non-Javadoc)
-		 * @see org.eclipse.jface.viewers.ILabelProvider#getText(Object)
-		 */
-		public String getText(Object element) {
-			return super.getText(element);
-		}
-
-	}
-		
-	/**
-	 * Creates the build configuration selection area of the dialog.
-	 * This area displays a list of available tools that the user
-	 * may select.
-	 * 
-	 * @return the composite used for tools configuration selection area
-	 */ 
-	protected Composite createToolSelectionArea(Composite parent) {
-		Composite comp = new Composite(parent, SWT.NONE);
-		setSelectionArea(comp);
-		GridLayout layout = new GridLayout();
-		layout.numColumns = 3;
-		layout.marginHeight = 0;
-		layout.marginWidth = 5;
-		comp.setLayout(layout);
-		
-		Label treeLabel = new Label(comp, SWT.NONE);
-		treeLabel.setText("Build Tools"); //$NON-NLS-1$
-		GridData gd = new GridData();
-		gd.horizontalSpan = 3;
-		treeLabel.setLayoutData(gd);
-		
-		ListViewer list = new ListViewer(comp);
-		gd = new GridData(GridData.FILL_BOTH);
-		gd.horizontalSpan = 3;
-		// Set width hint to 0 to force tree to only be as wide as the combined
-		// width of the 'New' & 'Delete' buttons.  Otherwise tree wants to be much wider.
-		gd.widthHint = 0;
-		list.getControl().setLayoutData(gd);
-		list.setContentProvider(new ToolListContentProvider());
-		list.setLabelProvider(new ToolListLabelProvider());
-		list.setSorter(new WorkbenchViewerSorter());
-		setListViewer(list);
-		list.setInput(ResourcesPlugin.getWorkspace().getRoot());
-		
-		return comp;
-	}	
-	
-	/**
-	 * Creates the build configuration edit area of the dialog.
-	 * This area displays the name of the build configuration
-	 * currently being edited, as well as a tab folder of tabs
-	 * that are applicable to the currently selected tool.
-	 * 
-	 * @return the composite used for build configuration editing
-	 */ 
-	protected Composite createEditArea(Composite parent) {
-		Composite outerComp = new Composite(parent, SWT.NONE);
-		GridLayout outerCompLayout = new GridLayout();
-		outerCompLayout.numColumns = 1;
-		outerCompLayout.marginHeight = 0;
-		outerCompLayout.marginWidth = 0;
-		outerComp.setLayout(outerCompLayout);
-		
-		Composite comp = new Composite(outerComp, SWT.NONE);
-		setEditArea(comp);
-		GridLayout layout = new GridLayout();
-		layout.numColumns = 2;
-		layout.marginHeight = 0;
-		layout.marginWidth = 5;
-		comp.setLayout(layout);		
-		GridData gd = new GridData(GridData.FILL_BOTH);
-		comp.setLayoutData(gd);
-		
-		Label nameLabel = new Label(comp, SWT.HORIZONTAL | SWT.LEFT);
-		nameLabel.setText("&Name");
-		gd = new GridData(GridData.BEGINNING);
-		nameLabel.setLayoutData(gd);
-		
-		Text nameText = new Text(comp, SWT.SINGLE | SWT.BORDER);
-		gd = new GridData(GridData.FILL_HORIZONTAL);
-		nameText.setLayoutData(gd);
-		setNameTextWidget(nameText);
-		
-		getNameTextWidget().addModifyListener(
-			new ModifyListener() {
-				public void modifyText(ModifyEvent e) {
-					updateConfigFromName();
-				}
-			}
-		);		
-		
-		Label spacer = new Label(comp, SWT.NONE);
-		gd = new GridData();
-		gd.horizontalSpan = 2;
-		spacer.setLayoutData(gd);
-		
-		fTabComposite = new Composite(comp, SWT.NONE);
-		GridLayout outerTabCompositeLayout = new GridLayout();
-		outerTabCompositeLayout.marginHeight = 0;
-		outerTabCompositeLayout.marginWidth = 0;
-		fTabComposite.setLayout(outerTabCompositeLayout);
-		gd = new GridData(GridData.FILL_BOTH);
-		gd.horizontalSpan = 2;
-		fTabComposite.setLayoutData(gd);		
-		
-		TabFolder tabFolder = new TabFolder(fTabComposite, SWT.NONE);
-		setTabFolder(tabFolder);
-		gd = new GridData(GridData.FILL_BOTH);
-		tabFolder.setLayoutData(gd);
-		getTabFolder().addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent evt) {
-				handleTabSelected();
-			}
-		});
-		
-		Composite buttonComp = new Composite(comp, SWT.NONE);
-		GridLayout buttonCompLayout = new GridLayout();
-		buttonCompLayout.numColumns = 2;
-		buttonComp.setLayout(buttonCompLayout);
-		gd = new GridData(GridData.HORIZONTAL_ALIGN_END);
-		gd.horizontalSpan = 2;
-		buttonComp.setLayoutData(gd);
-		
-		setApplyButton(new Button(buttonComp, SWT.PUSH));
-		getApplyButton().setText("&Apply");
-		gd = new GridData(GridData.HORIZONTAL_ALIGN_END);
-		getApplyButton().setLayoutData(gd);
-		SWTUtil.setButtonDimensionHint(getApplyButton());
-		getApplyButton().addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent evt) {
-				handleApplyPressed();
-			}
-		});
-		
-		setRevertButton(new Button(buttonComp, SWT.PUSH));
-		getRevertButton().setText("Revert");
-		gd = new GridData(GridData.HORIZONTAL_ALIGN_END);
-		getRevertButton().setLayoutData(gd);
-		SWTUtil.setButtonDimensionHint(getRevertButton());
-		getRevertButton().addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent evt) {
-				handleRevertPressed();
-			}
-		});
-		
-		return outerComp;
-	}	
-	
-	/**
-	 * @see Dialog#createButtonBar(Composite)
-	 */
-	protected Control createButtonBar(Composite parent) {
-		Composite composite= new Composite(parent, SWT.NULL);
-		GridLayout layout= new GridLayout();
-		layout.numColumns= 2;
-		layout.marginHeight= 0;
-		layout.marginWidth= 0;
-		composite.setLayout(layout);
-		composite.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-
-		GridLayout pmLayout = new GridLayout();
-		pmLayout.numColumns = 3;
-
-		return super.createButtonBar(composite);
-	}
-	
-	/**
-	 * Sets the title for the dialog, and establishes the help context.
-	 * 
-	 * @see org.eclipse.jface.window.Window#configureShell(Shell)
-	 */
-	protected void configureShell(Shell shell) {
-		super.configureShell(shell);
-		shell.setText(("Tools"));
-		WorkbenchHelp.setHelp(
-			shell,
-			CUIPlugin.getPluginId() + ".build_configuration_dialog");
-	}
-	
-	/**
-	 * @see Window#getInitialLocation(Point)
-	 */
-	protected Point getInitialLocation(Point initialSize) {	
-		String locationString = getPreferenceStore().getString(DIALOG_LOCATION);
-		if (locationString.length() > 0) {
-			Point locationPoint = parseCoordinates(locationString);
-			if (locationPoint != null) {
-				return locationPoint;
-			}
-		}
-		return super.getInitialLocation(initialSize);
-	}
-
-	/**
-	 * @see Window#getInitialSize()
-	 */
-	protected Point getInitialSize() {
-		String sizeString = getPreferenceStore().getString(DIALOG_SIZE);
-		if (sizeString.length() > 0) {
-			Point sizePoint = parseCoordinates(sizeString);
-			if (sizePoint != null) {
-				return sizePoint;
-			}
-		}
-		return DEFAULT_INITIAL_DIALOG_SIZE;
-	}
-	
-	/**
-	 * Given a coordinate String of the form "123x456" return a Point object whose
-	 * X value is 123 and Y value is 456.  Return <code>null</code> if the String
-	 * is not in the specified form.
-	 */
-	protected Point parseCoordinates(String coordString) {
-		int byIndex = coordString.indexOf('x');
-		if (byIndex < 0) {
-			return null;
-		}
-		
-		try {
-			int x = Integer.parseInt(coordString.substring(0, byIndex));
-			int y = Integer.parseInt(coordString.substring(byIndex + 1));			
-			return new Point(x, y);
-		} catch (NumberFormatException nfe) {
-			return null;
-		}
-	}
-	
-	/**
-	 * Given a Point object, return a String of the form "XCoordxYCoord".
-	 */
-	protected String serializeCoords(Point coords) {
-		StringBuffer buffer = new StringBuffer();
-		buffer.append(coords.x);
-		buffer.append('x');
-		buffer.append(coords.y);
-		return buffer.toString();
-	}
-	
-	private void setSashForm(SashForm sashForm) {
-		fSashForm = sashForm;
-	}
-	
-	protected SashForm getSashForm() {
-		return fSashForm;
-	}
-
-	/**
-	 * Sets the tree viewer used to display build configurations.
-	 * 
-	 * @param viewer the tree viewer used to display tool tabs
-	 */
-	private void setListViewer(ListViewer viewer) {
-		fToolList = viewer;
-	}
-	
-	/**
-	 * Returns the tree viewer used to display tool tabs
-	 * 
-	 * @param the tree viewer used to display tool tabs
-	 */
-	protected ListViewer getListViewer() {
-		return fToolList;
-	}
-	
-	protected IStructuredSelection getListViewerSelection() {
-		return (IStructuredSelection)getListViewer().getSelection();
-	}
-	
-	protected Object getListViewerFirstSelectedElement() {
-		IStructuredSelection selection = getListViewerSelection();
-		if (selection == null) {
-			return null;
-		}
-		return selection.getFirstElement();
-	}
-		
-	/**
-	 * Returns the build manager.
-	 * 
-	 * @return the build manager
-	 */
-	protected ICBuildConfigManager getBuildConfigManager() {
-		return BuilderPlugin.getDefault().getBuildConfigurationManager();
-	}
-
-	/**
-	 * Returns whether this dialog is currently open
-	 */
-	protected boolean isVisible() {
-		return getListViewer() != null;
-	}	
-
-	/**
-	 * Utility method with conventions
-	 */
-	protected void errorDialog(Shell shell, String title, String message, Throwable t) {
-		CUIPlugin.getDefault().log(t);
-		IStatus status;
-		if (t instanceof CoreException) {
-			status= ((CoreException)t).getStatus();
-			// if the 'message' resource string and the IStatus' message are the same,
-			// don't show both in the dialog
-			if (status != null && message.equals(status.getMessage())) {
-				message= null;
-			}
-		} else {
-			status= new Status(IStatus.ERROR, CUIPlugin.getPluginId(), IStatus.ERROR, "Error within plugin UI: ", t); //$NON-NLS-1$	
-		}
-		ErrorDialog.openError(shell, title, message, status);
-	}
- 	
- 	/**
- 	 * Sets the configuration to display/edit.
- 	 * Updates the tab folder to contain the appropriate pages.
- 	 * Sets all configuration-related state appropriately.
- 	 * 
- 	 * @param config the build configuration to display/edit
- 	 * @param init whether to initialize the config with default values
- 	 */
- 	protected void setBuildConfiguration(ICBuildConfig config, boolean init) {
-		try {
-			
-			// turn on initializing flag to ignore message updates
-			setInitializingTabs(true);
-			
-			getEditArea().setVisible(true);
-			
-			if (config.isWorkingCopy()) {
-		 		setWorkingCopy((ICBuildConfigWorkingCopy)config);
-			} else {
-				setWorkingCopy(config.getWorkingCopy());
-			}
-			fUnderlyingConfig = getConfiguration().getOriginal();
-	 		
-	 		// update the name field before to avoid verify error 
-	 		getNameTextWidget().setText(config.getName());	 		
-	 			 		
-	 		// Set the defaults for all tabs before any are initialized
-	 		// so that every tab can see ALL the default values
-	 		if (init) {
-				getTabGroup().setDefaults(getConfiguration());
-	 		}
-
-	 		// update the tabs with the new working copy	 		
-			getTabGroup().initializeFrom(getConfiguration());
-	 		
-	 		// update the name field after in case client changed it 
-	 		getNameTextWidget().setText(config.getName());
-	 				
-	 		// turn off initializing flag to update message
-			setInitializingTabs(false);
-			
-	 		refreshStatus();
-	 		
-		} catch (CoreException ce) {
- 			errorDialog(getShell(), "Error", "Exception occurred setting build configuration", ce);
- 			clearBuildConfiguration();
- 			return;					
-		}
- 	} 
- 	
- 	/**
- 	 * Clears the configuration being shown/edited.   
- 	 * Resets all configuration-related state.
- 	 */
- 	protected void clearBuildConfiguration() {
- 		setWorkingCopy(null);
- 		fUnderlyingConfig = null;
- 		setLastSavedName(null);
- 		getNameTextWidget().setText("");  //$NON-NLS-1$
- 		refreshStatus();
- 	}
- 	
- 	/**
- 	 * Populate the tabs in the configuration edit area to be appropriate to the current
- 	 * build configuration type.
- 	 */
- 	protected void showTabsForConfigType(ICToolType configType) {		
- 		
- 		// Don't do any work if the current tabs are for the current config type
- 		if (getTabType() != null && getTabType().equals(configType)) {
- 			return;
- 		}
- 		
- 		// Avoid flicker
- 		getEditArea().setVisible(false);
- 		
-		// Dispose the current tabs
-		disposeExistingTabs();
-
-		// Build the new tabs
- 		ICToolTabGroup group = null;
- 		try {
-	 		group = createGroup(configType);
- 		} catch (CoreException ce) {
- 			errorDialog(getShell(), "Error", "Exception occurred creating build configuration tabs",ce);
- 			return;
- 		}
- 		
- 		// Create the Control for each tab, and determine the maximum tab dimensions
- 		PixelConverter pixelConverter = new PixelConverter(getTabFolder());
- 		int runningTabWidth = 0;
- 		ICToolTab[] tabs = group.getTabs();
- 		Point contentSize = new Point(0, 0);
- 		for (int i = 0; i < tabs.length; i++) {
- 			TabItem tab = new TabItem(getTabFolder(), SWT.NONE);
- 			String name = tabs[i].getName();
- 			if (name == null) {
- 				name = "unspecified";
- 			}
- 			tab.setText(name);
- 			Image image = tabs[i].getImage();
- 			tab.setImage(image);
- 			runningTabWidth += pixelConverter.convertWidthInCharsToPixels(name.length() + 5);
- 			if (image != null) {
-	 			runningTabWidth += image.getBounds().width;
- 			}
- 			tabs[i].createControl(tab.getParent());
- 			Control control = tabs[i].getControl();
- 			if (control != null) {
-	 			tab.setControl(control);
-	 			Point size = control.computeSize(SWT.DEFAULT, SWT.DEFAULT, true);
-	 			if (size.x > contentSize.x) {
-	 				contentSize.x = size.x;
-	 			}
-	 			if (size.y > contentSize.y) {
-	 				contentSize.y = size.y;
-	 			}
- 			}
- 		}
- 		
- 		// Determine if more space is needed to show all tab labels across the top of the
- 		// tab folder.  If so, only increase size of dialog to some percent of the available
- 		// screen real estate.
-		if (runningTabWidth > contentSize.x) {
-			int maxAllowedWidth = (int) (getDisplay().getBounds().width * MAX_DIALOG_WIDTH_PERCENT);
-			int otherWidth = getSashForm().SASH_WIDTH + getSelectionArea().getBounds().width;
-			int totalWidth = runningTabWidth + otherWidth;
-			if (totalWidth > maxAllowedWidth) {
-				contentSize.x = maxAllowedWidth - otherWidth;
-			} else {
-				contentSize.x = runningTabWidth;
-			} 
-		}
- 		
- 		// Adjust the maximum tab dimensions to account for the extra space required for the tab labels
- 		Rectangle tabFolderBoundingBox = getTabFolder().computeTrim(0, 0, contentSize.x, contentSize.y);
-		contentSize.x = tabFolderBoundingBox.width;
-		contentSize.y = tabFolderBoundingBox.height;
-
- 		// Force recalculation of sizes	
-		getTabFolder().layout(true);
-		
-		// Calculate difference between required space for tab folder and current size,
-		// then increase size of this dialog's Shell by that amount
- 		Rectangle rect = fTabComposite.getClientArea();
-		Point containerSize= new Point(rect.width, rect.height);
-		int hdiff= contentSize.x - containerSize.x;
-		int vdiff= contentSize.y - containerSize.y;
-		// Only increase size of dialog, never shrink it
-		if (hdiff > 0 || vdiff > 0) {
-			int[] newSashWeights = null;
-			if (hdiff > 0) {			
-				newSashWeights = calculateNewSashWeights(hdiff);				
-			}
-			hdiff= Math.max(0, hdiff);
-			vdiff= Math.max(0, vdiff);
-			Shell shell= getShell();
-			Point shellSize= shell.getSize();
-			setShellSize(shellSize.x + hdiff, shellSize.y + vdiff);
-			// Adjust the sash weights so that all of the increase in width
-			// is given to the tab area
-			if (newSashWeights != null) {
-				getSashForm().setWeights(newSashWeights);
-			}
-		}
-
- 		setTabGroup(group);
- 		setTabType(configType);
- 		getEditArea().setVisible(true);
- 	}
- 	
- 	/**
- 	 * Calculate & return a 2 element integer array that specifies the relative 
- 	 * weights of the selection area and the edit area, based on the specified
- 	 * increase in width of the owning shell.  The point of this method is calculate 
- 	 * sash weights such that when the shell gets wider, all of the increase in width
- 	 * is given to the edit area (tab folder), and the selection area (tree) stays
- 	 * the same width.
- 	 */
-	protected int[] calculateNewSashWeights(int widthIncrease) {
-		int[] newWeights = new int[2];
-		newWeights[0] = getSelectionArea().getBounds().width;
-		newWeights[1] = getEditArea().getBounds().width + widthIncrease;
-		return newWeights;
-	}
-
- 	/**
- 	 * Increase the size of this dialog's <code>Shell</code> by the specified amounts.
- 	 * Do not increase the size of the Shell beyond the bounds of the Display.
- 	 */
-	private void setShellSize(int width, int height) {
-		Rectangle bounds = getShell().getDisplay().getBounds();
-		getShell().setSize(Math.min(width, bounds.width), Math.min(height, bounds.height));
-	}
-	
- 	protected void disposeExistingTabs() {
-		setDisposingTabs(true);
-		TabItem[] oldTabs = getTabFolder().getItems();
-		for (int i = 0; i < oldTabs.length; i++) {
-			oldTabs[i].dispose();
-		} 		
-		if (getTabGroup() != null) {
-			getTabGroup().dispose();
-		}
-		setTabGroup(null);
-		setTabType(null);
-		setDisposingTabs(false);
- 	}
- 	
- 	/**
- 	 * Sets the current build configuration that is being
- 	 * displayed/edited.
- 	 */
- 	protected void setWorkingCopy(ICBuildConfigWorkingCopy workingCopy) {
- 		fWorkingCopy = workingCopy;
- 	}
- 	
- 	protected boolean isWorkingCopyDirty() {
- 		ICBuildConfigWorkingCopy workingCopy = getConfiguration();
- 		if (workingCopy == null) {
- 			return false;
- 		}
- 		
- 		// Working copy hasn't been saved
- 		if (workingCopy.getOriginal() == null) {
- 			return true;
- 		}
- 		
- 		// Name has changed.  Normally, this would be caught in the 'contentsEqual'
- 		// check below, however there are some circumstances where this fails, such as
- 		// when the name is invalid
- 		if (isNameDirty()) {
- 			return true;
- 		}
-
- 		updateWorkingCopyFromPages();
- 		ICBuildConfig original = workingCopy.getOriginal();
- 		return !original.contentsEqual(workingCopy);
- 	}
- 	
- 	/**
- 	 * Return <code>true</code> if the name has been modified since the last time it was saved.
- 	 */
- 	protected boolean isNameDirty() {
- 		String currentName = getNameTextWidget().getText().trim();
- 		return !currentName.equals(getLastSavedName());
- 	}
- 	
-	/**
-	 * Sets the text widget used to display the name
-	 * of the configuration being displayed/edited
-	 * 
-	 * @param widget the text widget used to display the name
-	 *  of the configuration being displayed/edited
-	 */
-	private void setNameTextWidget(Text widget) {
-		fNameText = widget;
-	}
-	
-	/**
-	 * Returns the text widget used to display the name
-	 * of the configuration being displayed/edited
-	 * 
-	 * @return the text widget used to display the name
-	 *  of the configuration being displayed/edited
-	 */
-	protected Text getNameTextWidget() {
-		return fNameText;
-	} 
-	
- 	/**
- 	 * Sets the 'apply' button.
- 	 * 
- 	 * @param button the 'apply' button.
- 	 */	
- 	private void setApplyButton(Button button) {
- 		fApplyButton = button;
- 	}
- 	
- 	/**
- 	 * Returns the 'apply' button
- 	 * 
- 	 * @return the 'apply' button
- 	 */
- 	protected Button getApplyButton() {
- 		return fApplyButton;
- 	}	
- 	
- 	/**
- 	 * Sets the 'revert' button.
- 	 * 
- 	 * @param button the 'revert' button.
- 	 */	
- 	private void setRevertButton(Button button) {
- 		fRevertButton = button;
- 	}
- 	
- 	/**
- 	 * Returns the 'revert' button
- 	 * 
- 	 * @return the 'revert' button
- 	 */
- 	protected Button getRevertButton() {
- 		return fRevertButton;
- 	}	
- 	
- 	private void setDisposingTabs(boolean disposing) {
- 		fDisposingTabs = disposing;
- 	}
- 	
- 	private boolean isDisposingTabs() {
- 		return fDisposingTabs;
- 	}
- 
- 	/**
- 	 * Sets the tab folder
- 	 * 
- 	 * @param folder the tab folder
- 	 */	
- 	private void setTabFolder(TabFolder folder) {
- 		fTabFolder = folder;
- 	}
- 	
- 	/**
- 	 * Returns the tab folder
- 	 * 
- 	 * @return the tab folder
- 	 */
- 	protected TabFolder getTabFolder() {
- 		return fTabFolder;
- 	}	 	
- 	
- 	/**
- 	 * Sets the current tab group being displayed
- 	 * 
- 	 * @param group the current tab group being displayed
- 	 */
- 	private void setTabGroup(ICToolTabGroup group) {
- 		fTabGroup = group;
- 	}
- 	
- 	/**
- 	 * Returns the current tab group
- 	 * 
- 	 * @return the current tab group, or <code>null</code> if none
- 	 */
- 	public ICToolTabGroup getTabGroup() {
- 		return fTabGroup;
- 	}
- 	
- 	/**
- 	 * @see ICBuildConfigDialog#getTabs()
- 	 */
- 	public ICToolTab[] getTabs() {
- 		if (getTabGroup() == null) {
- 			return null;
- 		} else {
- 			return getTabGroup().getTabs();
- 		}
- 	} 	
- 	
-	protected void setIgnoreSelectionChanges(boolean ignore) {
-		fIgnoreSelectionChanges = ignore;
-	}
-	
-	protected boolean ignoreSelectionChanges() {
-		return fIgnoreSelectionChanges;
-	}
-	
-	/**
-	 * Return whether the current configuration can be discarded.  This involves determining
-	 * if it is dirty, and if it is, asking the user what to do.
-	 */
-	protected boolean canDiscardCurrentConfig() {		
-		// If there is no working copy, there's no problem, return true
-		ICBuildConfigWorkingCopy workingCopy = getConfiguration();
-		if (workingCopy == null) {
-			return true;
-		}
-		
-		if (isWorkingCopyDirty()) {
-			return showUnsavedChangesDialog();
-		} else {
-			return true;
-		}
-	}
-	
-	/**
-	 * Show the user a dialog appropriate to whether the unsaved changes in the current config
-	 * can be saved or not.  Return <code>true</code> if the user indicated that they wish to replace
-	 * the current config, either by saving changes or by discarding the, return <code>false</code>
-	 * otherwise.
-	 */
-	protected boolean showUnsavedChangesDialog() {
-		if (canSaveConfig()) {
-			return showSaveChangesDialog();
-		} else {
-			return showDiscardChangesDialog();
-		}
-	}
-	
-	/**
-	 * Create and return a dialog that asks the user whether they want to save
-	 * unsaved changes.  Return <code>true </code> if they chose to save changes,
-	 * <code>false</code> otherwise.
-	 */
-	protected boolean showSaveChangesDialog() {
-		StringBuffer buffer = new StringBuffer("The configuration '");
-		buffer.append(getConfiguration().getName());
-		buffer.append("' has unsaved changes. Do you wish to save them?");
-		MessageDialog dialog = new MessageDialog(getShell(), 
-												 ("Save changes?"),
-												 null,
-												 buffer.toString(),
-												 MessageDialog.QUESTION,
-												 new String[] {"Yes", "No", "Cancel"},
-												 0);
-		// If user clicked 'Cancel' or closed dialog, return false
-		int selectedButton = dialog.open();
-		if ((selectedButton < 0) || (selectedButton == 2)) {
-			return false;
-		}
-		
-		// If they hit 'Yes', save the working copy 
-		if (selectedButton == 0) {
-			saveConfig();
-		}
-		
-		return true;
-	}
-	
-	/**
-	 * Create and return a dialog that asks the user whether they want to discard
-	 * unsaved changes.  Return <code>true</code> if they chose to discard changes,
-	 * <code>false</code> otherwise.
-	 */
-	protected boolean showDiscardChangesDialog() {
-		StringBuffer buffer = new StringBuffer("The configuration '");
-		buffer.append(getNameTextWidget().getText());
-		buffer.append("' has unsaved changes that CANNOT be saved because of the following error:");
-		buffer.append(fCantSaveErrorMessage);
-		buffer.append("Do you wish to discard changes?");
-		MessageDialog dialog = new MessageDialog(getShell(), 
-												 "Discard changes?",
-												 null,
-												 buffer.toString(),
-												 MessageDialog.QUESTION,
-												 new String[] {"Yes", "No"},
-												 1);
-		// If user clicked 'Yes', return true
-		int selectedButton = dialog.open();
-		if (selectedButton == 0) {
-			return true;
-		}
-		return false;
-	}
-	
-	/**
-	 * Return <code>true</code> if the current configuration can be saved, <code>false</code>
-	 * otherwise.  Note this is NOT the same thing as the config simply being valid.  It is
-	 * possible to save a config that does not validate.  This method determines whether the
-	 * config can be saved without causing a serious error.  For example, a shared config that
-	 * has no specified location would cause this method to return <code>false</code>.
-	 */
-	protected boolean canSaveConfig() {
-		
-		fCantSaveErrorMessage = null;
-
-		// First make sure that name doesn't prevent saving the config
-		try {
-			verifyName();
-		} catch (CoreException ce) {
-			fCantSaveErrorMessage = ce.getStatus().getMessage();
-			return false;
-		}
-		
-		// Next, make sure none of the tabs object to saving the config
-		ICToolTab[] tabs = getTabs();
-		if (tabs == null) {
-			fCantSaveErrorMessage = "No tabs found";
-			return false;
-		}
-		for (int i = 0; i < tabs.length; i++) {
-			if (!tabs[i].canSave()) {
-				fCantSaveErrorMessage = tabs[i].getErrorMessage();
-				return false;
-			}
-		}
-		return true;		
-	}
-
-	/**
-	 * Notification the 'Close' button has been pressed.
-	 */
-	protected void handleClosePressed() {
-		if (canDiscardCurrentConfig()) {
-			disposeExistingTabs();
-			cancelPressed();
-		}
-	}
-	
-	/**
-	 * Notification that the 'Apply' button has been pressed
-	 */
-	protected void handleApplyPressed() {
-		saveConfig();
-		getListViewer().setSelection(new StructuredSelection(fUnderlyingConfig));
-	}
-	
-	/**
-	 * Notification that the 'Revert' button has been pressed
-	 */
-	protected void handleRevertPressed() {
-		setBuildConfiguration(getConfiguration().getOriginal(), false);
-	}
-	
-	protected void saveConfig() {
-		try {
-			// trim name
-			Text widget = getNameTextWidget();
-			widget.setText(widget.getText().trim());
-			doSave();
-		} catch (CoreException e) {
-			errorDialog(getShell(), "Error", "Exception occurred while saving build configuration", e);
-			return;
-		}
-		
-		updateButtons();		
-	}
-	
-	/**
-	 * Notification that a tab has been selected
-	 * 
-	 * Disallow tab changing when the current tab is invalid.
-	 * Update the config from the tab being left, and refresh
-	 * the tab being entered.
-	 */
-	protected void handleTabSelected() {
-		if (isDisposingTabs()) {
-			return;
-		}
-		ICToolTab[] tabs = getTabs();
-		if (fCurrentTabIndex == getTabFolder().getSelectionIndex() || tabs == null || tabs.length == 0 || fCurrentTabIndex > (tabs.length - 1)) {
-			return;
-		}
-		if (fCurrentTabIndex != -1) {
-			ICToolTab tab = tabs[fCurrentTabIndex];
-			ICBuildConfigWorkingCopy wc = getConfiguration();
-			if (wc != null) {
-				// apply changes when leaving a tab
-				tab.performApply(getConfiguration());
-				// re-initialize a tab when entering it
-				getActiveTab().initializeFrom(wc);
-			}
-		}
-		fCurrentTabIndex = getTabFolder().getSelectionIndex();
-		refreshStatus();
-	}	
-	
-	/**
-	 * Iterate over the pages to update the working copy
-	 */
-	protected void updateWorkingCopyFromPages() {
-		ICBuildConfigWorkingCopy workingCopy = getConfiguration();
-		if (getTabGroup() != null) {
-			getTabGroup().performApply(workingCopy);
-		}
-	}
-	
-	/**
-	 * Do the save
-	 */
-	protected void doSave() throws CoreException {
-		ICBuildConfigWorkingCopy workingCopy = getConfiguration();
-		updateWorkingCopyFromPages();
-		if (isWorkingCopyDirty()) {
-			fUnderlyingConfig = workingCopy.doSave();
-			setWorkingCopy(fUnderlyingConfig.getWorkingCopy());
-			setLastSavedName(fUnderlyingConfig.getName()); 
-		}
-	}
-
-	protected IPreferenceStore getPreferenceStore() {
-		return CUIPlugin.getDefault().getPreferenceStore();
-	}
-
-	/**
-	 * Sets the given cursor for all shells currently active
-	 * for this window's display.
-	 *
-	 * @param cursor the cursor
-	 */
-	private void setDisplayCursor(Cursor cursor) {
-		Shell[] shells = getShell().getDisplay().getShells();
-		for (int i = 0; i < shells.length; i++)
-			shells[i].setCursor(cursor);
-	}
-	
-	/**
-	 * Checks whether it is alright to close this dialog
-	 * and performed standard cancel processing. If there is a
-	 * long running operation in progress, this method posts an
-	 * alert message saying that the dialog cannot be closed.
-	 * 
-	 * @return <code>true</code> if it is alright to close this dialog, and
-	 *  <code>false</code> if it is not
-	 */
-	private boolean okToClose() {
-		if (fActiveRunningOperations > 0) {
-			synchronized (this) {
-				fWindowClosingDialog = createDialogClosingDialog();
-			}	
-			fWindowClosingDialog.open();
-			synchronized (this) {
-				fWindowClosingDialog = null;
-			}
-			return false;
-		}
-		
-		return true;
-	}
-
-	/**
-	 * Creates and return a new wizard closing dialog without opening it.
-	 */ 
-	private MessageDialog createDialogClosingDialog() {
-		MessageDialog result= new MessageDialog(
-			getShell(),
-			JFaceResources.getString("WizardClosingDialog.title"), //$NON-NLS-1$
-			null,
-			JFaceResources.getString("WizardClosingDialog.message"), //$NON-NLS-1$
-			MessageDialog.QUESTION,
-			new String[] {IDialogConstants.OK_LABEL},
-			0 ); 
-		return result;
-	}
-	
-	protected ICBuildConfigWorkingCopy getConfiguration() {
-		return fWorkingCopy;
-	}
-
-	/**
-	 * @see ICBuildConfigDialog#updateButtons()
-	 */
-	public void updateButtons() {
-		if (isInitializingTabs()) {
-			return;
-		}
-		
-		// Get the current selection
-		IStructuredSelection sel = (IStructuredSelection)getListViewer().getSelection();
-		boolean singleSelection = sel.size() == 1;
-		boolean firstItemConfig = sel.getFirstElement() instanceof ICBuildConfig;
-		boolean firstItemConfigType = sel.getFirstElement() instanceof ICTool;
-		
-		// Apply & Launch buttons
-		if (sel.isEmpty()) {
-			getApplyButton().setEnabled(false);
-		} else {
-			getApplyButton().setEnabled(true);
-		}
-		
-		// Revert button
-		if (sel.isEmpty() || sel.size() > 1) {
-			getRevertButton().setEnabled(false);
-		} else {
-			if (firstItemConfig && isWorkingCopyDirty()) {
-				getRevertButton().setEnabled(true);
-			} else {
-				getRevertButton().setEnabled(false);
-			}
-		}
-	}
-	
-	/**
-	 * @see ICBuildConfigDialog#getActiveTab()
-	 */
-	public ICToolTab getActiveTab() {
-		TabFolder folder = getTabFolder();
-		ICToolTab[] tabs = getTabs();
-		if (folder != null && tabs != null) {
-			int pageIndex = folder.getSelectionIndex();
-			if (pageIndex >= 0) {		
-				return tabs[pageIndex];		
-			}
-		}
-		return null;
-	}
-	
-	/**
-	 * Returns the currently active TabItem
-	 * 
-	 * @return build configuration tab item
-	 */
-	protected TabItem getActiveTabItem() {
-		TabFolder folder = getTabFolder();
-		TabItem tabItem = null;
-		int selectedIndex = folder.getSelectionIndex();
-		if (selectedIndex >= 0) {
-			tabItem = folder.getItem(selectedIndex);
-		}		
-		return tabItem;
-	}
-
-	/**
-	 * @see ICBuildConfigDialog#updateMessage()
-	 */
-	public void updateMessage() {
-		if (isInitializingTabs()) {
-			return;
-		}
-		
-		// If there is no current working copy, show a default informational message and clear the error message
-		if (getConfiguration() == null) {
-			setErrorMessage(null);
-			setMessage("Select a type of configuration to create, and press 'new'");
-			return;
-		}
-		
-		try {
-			verifyStandardAttributes();
-		} catch (CoreException ce) {
-			setErrorMessage(ce.getMessage());
-			return;
-		}
-		
-		// Get the active tab.  If there isn't one, clear the informational & error messages
-		ICToolTab activeTab = getActiveTab();
-		if (activeTab == null) {
-			setMessage(null);
-			setErrorMessage(null);
-			return;
-		}
-		
-		// Always set the informational (non-error) message based on the active tab		
-		setMessage(activeTab.getMessage());
-		
-		// The bias is to show the active page's error message, but if there isn't one,
-		// show the error message for one of the other tabs that has an error.  Set the icon
-		// for all tabs according to whether they contain errors.
-		String errorMessage = checkTabForError(activeTab);
-		boolean errorOnActiveTab = errorMessage != null;
-		setTabIcon(getActiveTabItem(), errorOnActiveTab, activeTab);
-		
-		ICToolTab[] allTabs = getTabs();
-		for (int i = 0; i < allTabs.length; i++) {
-			if (getTabFolder().getSelectionIndex() == i) {
-				continue;
-			}
-			String tabError = checkTabForError(allTabs[i]);				
-			TabItem tabItem = getTabFolder().getItem(i);
-			boolean errorOnTab = tabError != null;
-			setTabIcon(tabItem, errorOnTab, allTabs[i]);
-			if (errorOnTab && !errorOnActiveTab) {
-				errorMessage = '[' + removeAmpersandsFrom(tabItem.getText()) + "]: " + tabError; //$NON-NLS-1$
-			}
-		}
-		setErrorMessage(errorMessage);				
-	}
-	
-	/**
-	 * Force the tab to update it's error state and return any error message.
-	 */
-	protected String checkTabForError(ICToolTab tab) {
-		tab.isValid(getConfiguration());
-		return tab.getErrorMessage();
-	}
-	
-	/**
-	 * Set the specified tab item's icon to an error icon if <code>error</code> is true,
-	 * or a transparent icon of the same size otherwise.
-	 */
-	protected void setTabIcon(TabItem tabItem, boolean error, ICToolTab tab) {
-		Image image = null;
-		if (error) {			
-			image = tab.getImage(); /* CBuildConfigManager.getErrorTabImage(tab) */
-		} else {
-			image = tab.getImage();
-		}
-		tabItem.setImage(image);								
-	}
-
-	/**
-	 * Return a copy of the specified string 
-	 */
-	protected String removeAmpersandsFrom(String string) {
-		String newString = new String(string);
-		int index = newString.indexOf('&');
-		while (index != -1) {
-			newString = string.substring(0, index) + newString.substring(index + 1, newString.length());
-			index = newString.indexOf('&');
-		}
-		return newString;
-	}
-
-	/**
-	 * Returns the build configuration selection area control.
-	 * 
-	 * @return control
-	 */
-	protected Composite getSelectionArea() {
-		return fSelectionArea;
-	}
-
-	/**
-	 * Sets the build configuration selection area control.
-	 * 
-	 * @param editArea control
-	 */
-	private void setSelectionArea(Composite selectionArea) {
-		fSelectionArea = selectionArea;
-	}
-
-	/**
-	 * Returns the build configuration edit area control.
-	 * 
-	 * @return control
-	 */
-	protected Composite getEditArea() {
-		return fEditArea;
-	}
-
-	/**
-	 * Sets the build configuration edit area control.
-	 * 
-	 * @param editArea control
-	 */
-	private void setEditArea(Composite editArea) {
-		fEditArea = editArea;
-	}
-
-	/**
-	 * Returns the type that tabs are currently displayed
-	 * for, or <code>null</code> if none.
-	 * 
-	 * @return build configuration type or <code>null</code>
-	 */
-	protected ICToolType getTabType() {
-		return fToolType;
-	}
-
-	/**
-	 * Sets the type that tabs are currently displayed
-	 * for, or <code>null</code> if none.
-	 * 
-	 * @param tabType build configuration type
-	 */
-	private void setTabType(ICToolType tabType) {
-		fToolType = tabType;
-	}
-
-	protected Object getSelectedTreeObject() {
-		return fSelectedTreeObject;
-	}
-	
-	protected void setSelectedTreeObject(Object obj) {
-		fSelectedTreeObject = obj;
-	}	
-	
-	/**
-	 * @see ICBuildConfigDialog#setName(String)
-	 */
-	public void setName(String name) {
-		if (isVisible()) {
-			if (name == null) {
-				name = ""; //$NON-NLS-1$
-			}
-			fNameText.setText(name.trim());
-			refreshStatus();
-		}
-	}
-	
-	/**
-	 * Sets whether this dialog is initializing pages
-	 * and should not bother to refresh status (butttons
-	 * and message).
-	 */
-	private void setInitializingTabs(boolean init) {
-		fInitializingTabs = init;
-	}
-	
-	/**
-	 * Returns whether this dialog is initializing pages
-	 * and should not bother to refresh status (butttons
-	 * and message).
-	 */
-	protected boolean isInitializingTabs() {
-		return fInitializingTabs;
-	}	
-}
Index: build/org/eclipse/cdt/ui/builder/internal/CBuildConfigPresentationManager.java
===================================================================
RCS file: build/org/eclipse/cdt/ui/builder/internal/CBuildConfigPresentationManager.java
diff -N build/org/eclipse/cdt/ui/builder/internal/CBuildConfigPresentationManager.java
--- build/org/eclipse/cdt/ui/builder/internal/CBuildConfigPresentationManager.java	17 Feb 2003 19:13:07 -0000	1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,121 +0,0 @@
-/**********************************************************************
- * Copyright (c) 2002,2003 Timesys 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: 
- * Timesys - Initial API and implementation
- **********************************************************************/
-
-package org.eclipse.cdt.ui.builder.internal;
-
-import java.text.MessageFormat;
-import java.util.Hashtable;
-
-import org.eclipse.cdt.core.builder.model.ICToolType;
-import org.eclipse.cdt.ui.CUIPlugin;
-import org.eclipse.cdt.ui.builder.ICToolTabGroup;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.core.runtime.IExtension;
-import org.eclipse.core.runtime.IExtensionPoint;
-import org.eclipse.core.runtime.IPluginDescriptor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.debug.core.DebugPlugin;
-import org.eclipse.debug.core.ILaunchConfigurationType;
-import org.eclipse.debug.internal.ui.DebugUIPlugin;
-import org.eclipse.debug.ui.IDebugUIConstants;
-
-/**
- * @author sam.robb
- * 
- * Manages contributed configuration tabs
- */
-public class CBuildConfigPresentationManager {
-	
-	/**
-	 * The singleton configuration presentation manager
-	 */
-	private static CBuildConfigPresentationManager fgDefault;
-			
-	/**
-	 * Collection of configuration tab group extensions
-	 * defined in plug-in xml. Entries are keyed by
-	 * type identifier (<code>String</code>), and entires
-	 * are <code>CToolTabGroupPoint</code>.
-	 */
-	private Hashtable fTabGroupExtensions;	
-		
-	/**
-	 * Constructs the singleton configuration presentation manager.
-	 */
-	private CBuildConfigPresentationManager() {
-		fgDefault = this;
-		initializeTabGroupExtensions();
-	}
-
-	/**
-	 * Returns the configuration presentation manager
-	 */
-	public static CBuildConfigPresentationManager getDefault() {
-		if (fgDefault == null) {
-			fgDefault = new CBuildConfigPresentationManager();
-		}
-		return fgDefault;
-	}
-		
-	/**
-	 * Creates launch configuration tab group extensions for each extension
-	 * defined in XML, and adds them to the table of tab group extensions.
-	 */
-	private void initializeTabGroupExtensions() {
-		fTabGroupExtensions = new Hashtable();
-		IPluginDescriptor descriptor= CUIPlugin.getDefault().getDescriptor();
-		IExtensionPoint extensionPoint= descriptor.getExtensionPoint(IDebugUIConstants.EXTENSION_POINT_LAUNCH_CONFIGURATION_TAB_GROUPS);
-		IConfigurationElement[] groups = extensionPoint.getConfigurationElements();
-		for (int i = 0; i < groups.length; i++) {
-			CToolTabGroupPoint group = new CToolTabGroupPoint(groups[i]);
-			String typeId = group.getId();
-			if (typeId == null) {
-				IExtension ext = groups[i].getDeclaringExtension();
-				IStatus status = new Status(IStatus.ERROR, IDebugUIConstants.PLUGIN_ID, IDebugUIConstants.STATUS_INVALID_EXTENSION_DEFINITION,
- 					 MessageFormat.format("Configuration tab group extension {0} does not specify configuration type", (new String[] {ext.getUniqueIdentifier()})), null); //$NON-NLS-1$
-					DebugUIPlugin.log(status);
-			} else {
-				// verify it references a valid launch configuration type
-				ILaunchConfigurationType lct = DebugPlugin.getDefault().getLaunchManager().getLaunchConfigurationType(typeId);
-				if (lct == null) {
-					IExtension ext = groups[i].getDeclaringExtension();
-					IStatus status = new Status(IStatus.ERROR, IDebugUIConstants.PLUGIN_ID, IDebugUIConstants.STATUS_INVALID_EXTENSION_DEFINITION,
-					 MessageFormat.format("Launch configuration tab group extension {0} refers to non-existant launch configuration_type_{1}", (new String[] {ext.getUniqueIdentifier(), typeId})), null); //$NON-NLS-1$
-					DebugUIPlugin.log(status);
-				}
-			}
-			if (typeId != null) {
-				fTabGroupExtensions.put(typeId, group);
-			}
-		}
-	}	
-	
-	/**
-	 * Returns the tab group for the given type of launch configuration.
-	 * 
-	 * @return the tab group for the given type of launch configuration
-	 * @exception CoreException if an exception occurrs creating the group
-	 */
-	public ICToolTabGroup getTabGroup(ICToolType type) throws CoreException {
-		CToolTabGroupPoint ext = (CToolTabGroupPoint)fTabGroupExtensions.get(type.getId());
-		if (ext == null) {
-			IStatus status = new Status(IStatus.ERROR, IDebugUIConstants.PLUGIN_ID, IDebugUIConstants.INTERNAL_ERROR,
-			 MessageFormat.format("No tab group defined for configuration type {0}", (new String[] {type.getId()})), null);			; //$NON-NLS-1$
-			 throw new CoreException(status);
-		} else {
-			return ext.getProvider();
-		}
-	}
-	
-}
-
Index: build/org/eclipse/cdt/ui/builder/internal/CBuildConfigView.java
===================================================================
RCS file: build/org/eclipse/cdt/ui/builder/internal/CBuildConfigView.java
diff -N build/org/eclipse/cdt/ui/builder/internal/CBuildConfigView.java
--- build/org/eclipse/cdt/ui/builder/internal/CBuildConfigView.java	21 Apr 2003 17:09:03 -0000	1.2
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,824 +0,0 @@
-/**********************************************************************
- * Copyright (c) 2002,2003 Timesys 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: 
- * Timesys - Initial API and implementation
- **********************************************************************/
-
-package org.eclipse.cdt.ui.builder.internal;
-
-import java.lang.reflect.InvocationTargetException;
-import java.util.ArrayList;
-import java.util.Iterator;
-
-import org.eclipse.cdt.core.CProjectNature;
-import org.eclipse.cdt.core.builder.BuilderPlugin;
-import org.eclipse.cdt.core.builder.model.ICBuildConfig;
-import org.eclipse.cdt.core.builder.model.ICBuildConfigManager;
-import org.eclipse.cdt.core.builder.model.ICBuildConfigWorkingCopy;
-import org.eclipse.cdt.core.resources.MakeUtil;
-import org.eclipse.core.internal.runtime.Assert;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.IResourceChangeEvent;
-import org.eclipse.core.resources.IResourceChangeListener;
-import org.eclipse.core.resources.IResourceDelta;
-import org.eclipse.core.resources.IResourceDeltaVisitor;
-import org.eclipse.core.resources.IWorkspaceRoot;
-import org.eclipse.core.resources.IncrementalProjectBuilder;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.action.IMenuCreator;
-import org.eclipse.jface.action.IMenuListener;
-import org.eclipse.jface.action.IMenuManager;
-import org.eclipse.jface.action.IToolBarManager;
-import org.eclipse.jface.action.MenuManager;
-import org.eclipse.jface.action.Separator;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.jface.dialogs.ProgressMonitorDialog;
-import org.eclipse.jface.operation.IRunnableWithProgress;
-import org.eclipse.jface.viewers.DoubleClickEvent;
-import org.eclipse.jface.viewers.IDoubleClickListener;
-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.LabelProvider;
-import org.eclipse.jface.viewers.SelectionChangedEvent;
-import org.eclipse.jface.viewers.TreeViewer;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.jface.viewers.ViewerSorter;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Menu;
-import org.eclipse.swt.widgets.MenuItem;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.IActionBars;
-import org.eclipse.ui.ISharedImages;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.part.ViewPart;
-
-
-/**
- * Shows the build configuration wizard
- */
-public class CBuildConfigView extends ViewPart implements IResourceChangeListener { 
-	private TreeViewer viewer;
-	
-	/**
-	 * Configuration life cycle actions
-	 */
-	private Action actionEditConfig;
-	private Action actionNewConfig;
-	private Action actionMakePrimary;
-	private Action actionDeleteConfig;
-	private Action doubleClickAction;
-	//private Action actionBuild;
-	
-	/** 
-	 * Message constants
-	 */
-	private final String MSG_CANDELETE = "Remove build configuration";
-	private final String MSG_NODELETE = "Cannot delete primary build configuration";
-	private final String MSG_MAKEPRIMARY = "Make this build configuration the primary configuration";
-	private final String MSG_ALREADYPRIMARY = "This build configuration is the primary configuration";
-	private final String KEY_LASTPROJECT = "LastProject";
-
-	/**
-	 * Menu entry for the collection of CBuildConfigurationAction
-	 * objects
-	 */
-	class CBuildAction extends Action {
-		private IProject m_project;
-		private ICBuildConfig m_config;
-		
-		public CBuildAction(IProject prj, ICBuildConfig config) {
-			m_project = prj;
-			m_config = config;
-			setText("Build");
-			setToolTipText("Performing Build");
-			setImageDescriptor(CBuilderImages.DESC_IMG_ACTION_BUILD_CONFIG);
-			setMenuCreator(new CTargetsMenuCreator(m_project, m_config));
-		}
-	}
-
-	class CTargetsMenuCreator implements IMenuCreator {
-			
-		private IProject m_project;
-		private ICBuildConfig m_config;
-
-		public CTargetsMenuCreator(IProject prj, ICBuildConfig config) {
-			m_project = prj;
-			m_config = config;	
-		}
-		
-		private Menu createContents(Menu targets) {
-
-			// walk the list of targets in the project and add them to the target menu
-			String strTargets[] = MakeUtil.getPersistentTargets(m_project);
-			for (int nIndex = 0; nIndex < strTargets.length; nIndex++) {
-				MenuItem newItem = new MenuItem(targets, SWT.NONE);
-				newItem.setText(strTargets[nIndex]);
-				newItem.addSelectionListener(new SelectionAdapter() {
-
-					public void widgetSelected(SelectionEvent selEvent) {
-						// cheasy, but good enough for this, the name of the menu is the build target
-						String strConfig = ((MenuItem) selEvent.getSource()).getText();
-						// System.out.println("Building configuration " + strConfig + " on project " + m_project.getName() + " using configuration " + m_config.getName());
-						IRunnableWithProgress builder = new ConfigurationBuilder(m_project, m_config, strConfig);
-						try {
-							new ProgressMonitorDialog(getSite().getShell()).run(true, true, builder);
-						}
-						catch (InterruptedException e) {}
-						catch (InvocationTargetException e) {}
-					}
-				});
-			}
-			
-			return targets;
-		}
-
-		/**
-		 * @see org.eclipse.jface.action.IMenuCreator#dispose()
-		 */
-		public void dispose() {
-			m_project = null;
-		}
-				
-		/**
-		 * @see org.eclipse.jface.action.IMenuCreator#getMenu(Control)
-		 */
-		public Menu getMenu(Control parent) {
-			Menu theMenu = new Menu(parent);
-			return createContents(theMenu);
-		}
-
-		/**
-		 * @see org.eclipse.jface.action.IMenuCreator#getMenu(Menu)
-		 */
-		public Menu getMenu(Menu parent) {
-			Menu theMenu = new Menu(parent);			
-			return createContents(theMenu);
-		}
-
-	}
-	
-	/**
-	 * this class builds the selected configuration
-	 */
-	class ConfigurationBuilder implements IRunnableWithProgress {
-		private IProject m_prj;		
-		private ICBuildConfig m_config;
-		private String m_target;
-
-		public ConfigurationBuilder(IProject prj, ICBuildConfig bldConfig, String strTarget) {
-			m_prj  = prj;
-			m_config = bldConfig;
-			m_target = strTarget;
-		}
-		
-		/**
-		 * @see org.eclipse.jface.operation.IRunnableWithProgress#run(IProgressMonitor)
-		 */
-		public void run(IProgressMonitor monitor) {
-			Assert.isNotNull(m_prj, "Project reference cannot be null");
-			Assert.isNotNull(m_config, "Configuration reference cannot be null");
-			try {
-				MakeUtil.setSessionBuildDir(m_prj, m_prj.getLocation().toOSString());
-				MakeUtil.setSessionTarget(m_prj, m_target);
-				m_prj.build(IncrementalProjectBuilder.FULL_BUILD, monitor);
-			} 
-			catch (CoreException e) { }
-		}
-	}
-	
-	/*
-	 * The content provider class is responsible for
-	 * providing objects to the view. It can wrap
-	 * existing objects in adapters or simply return
-	 * objects as-is. These objects may be sensitive
-	 * to the current input of the view, or ignore
-	 * it and always show the same content 
-	 * (like Task List, for example).
-	 */	 
-	abstract class TreeObject implements IAdaptable {
-		private String 	fName;
-		private TreeObject fParent;
-		private ArrayList	fChildren;
-		
-		public TreeObject(String name) {
-			this(name, null);
-		}
-
-		abstract public void doRefreshChildren();
-		
-		public TreeObject(String name, TreeObject parent) {
-			setName(name);
-			setParent(parent);
-			fChildren = new ArrayList();
-		}
-
-		public void refreshChildren() {
-			fChildren.clear();
-			doRefreshChildren();
-			for (Iterator iter = fChildren.iterator(); iter.hasNext();) {
-				TreeObject element = ((TreeObject) iter.next());
-				element.refreshChildren();
-			}
-		}
-
-		public void addChild(TreeObject child) {
-			fChildren.add(child);
-			child.setParent(this);
-		}
-
-		public void removeChild(TreeObject child) {
-			fChildren.remove(child);
-			child.setParent(null);
-		}
-
-		public TreeObject[] getChildren() {
-			return (TreeObject[]) fChildren.toArray(new TreeObject[fChildren.size()]);
-		}
-		
-		public boolean hasChildren() {
-			return (fChildren.size() > 0);
-		}
-
-		public void setName(String name) {
-			fName = ((name != null) ? name : "");
-		}
-
-		public void setParent(TreeObject parent) {
-			fParent = parent;
-		}
-
-		public String getName() {
-			return fName;
-		}
-		
-		public TreeObject getParent() {
-			return fParent;
-		}
-		
-		public Object getAdapter(Class key) {
-			return null;
-		}
-		
-		public Image getImage() {
-			return PlatformUI.getWorkbench().getSharedImages().getImage(ISharedImages.IMG_OBJ_ELEMENT);
-		}
-
-		public String toString() {
-			return getName();
-		}
-	}
-	
-	/**
-	 * The tree parent class contains a list of projects
-	 */
-	class TreeRoot extends TreeObject {
-
-		public TreeRoot() {
-			super("");
-		}
-		
-		/**
-		 * Return a list of all child objects (projects)
-		 * that support the C project nature.
-		 */
-		public void doRefreshChildren() {
-			IWorkspaceRoot wsRoot = ResourcesPlugin.getWorkspace().getRoot();
-			if (wsRoot != null) {
-				IProject[] projects = wsRoot.getProjects();
-				if (projects != null) {
-					for (int i = 0; i < projects.length; i++) {
-						try {
-							if (projects[i].isOpen()) {
-								if (projects[i].hasNature(CProjectNature.C_NATURE_ID)) {
-									addChild(new TreeProject(projects[i], this));
-								}
-							}
-						} 
-						catch (CoreException e) {
-						}
-					}
-				}
-			}
-		}
-
-		public Image getImage() {
-			return PlatformUI.getWorkbench().getSharedImages().getImage(ISharedImages.IMG_OBJ_FOLDER);
-		}
-		
-	}
-		
-	class TreeProject extends TreeObject {
-		private IProject fProject;
-
-		public TreeProject(IProject project, TreeRoot parent) {
-			super(project.getName(), parent);
-			setProject(project);
-		}
-
-		private void setProject(IProject project) {
-			fProject = project;
-		}
-		
-		public IProject getProject() {
-			return fProject;
-		}
-
-		public void doRefreshChildren() {
-			try {
-				ICBuildConfig[] configs = getBuildConfigurationManager().getConfigurations(fProject);
-				for (int i = 0; i < configs.length; i++) {
-					addChild(new TreeConfiguration(configs[i]));
-				}
-			} catch (CoreException e) {
-			}
-		}
-		
-		public Image getImage() {
-			return PlatformUI.getWorkbench().getSharedImages().getImage(ISharedImages.IMG_OBJ_FOLDER);
-		}
-	}
-	
-	class TreeConfiguration extends TreeObject {
-		private ICBuildConfig fConfig;
-		
-		public TreeConfiguration(ICBuildConfig config) {
-			super(config.getName());
-			fConfig = config;
-		}
-
-		public void doRefreshChildren() {
-		}
-		
-		public ICBuildConfig getConfiguration() {
-			return fConfig;
-		}
-
-		public IProject getProject() {
-			return fConfig.getProject();
-		}
-	}
-
-	class ViewContentProvider implements IStructuredContentProvider, 
-										   ITreeContentProvider {
-		private TreeRoot invisibleRoot;
-
-		public ViewContentProvider() {
-			invisibleRoot = new TreeRoot();
-			invisibleRoot.refreshChildren();
-		}
-
-		public void inputChanged(Viewer v, Object oldInput, Object newInput) {
-			invisibleRoot.refreshChildren();
-		}
-		
-		public void dispose() {
-		}
-		
-		public Object[] getElements(Object parent) {
-			if (parent.equals(ResourcesPlugin.getWorkspace())) {
-				return getChildren(invisibleRoot);
-			}
-			return getChildren(parent);
-		}
-
-		public Object getParent(Object child) {
-			if (child instanceof TreeObject) {
-				return ((TreeObject) child).getParent();
-			}
-			return null;
-		}
-
-		public Object[] getChildren(Object parent) {
-			if (parent instanceof TreeObject) {
-				return ((TreeObject) parent).getChildren();
-			}
-			return new Object[0];
-		}
-
-		public boolean hasChildren(Object parent) {			
-			if (parent instanceof TreeObject) {
-				return ((TreeObject) parent).hasChildren();
-			}
-			return false;
-		}
-	}
-	
-	class ViewLabelProvider extends LabelProvider {
-
-		public String getText(Object obj) {
-			return obj.toString();
-		}
-
-		public Image getImage(Object obj) {
-			Image image = null;			// this is the image that will represent the obj parameter			
-
-			// if this is a build configuration, get the image for the build configuration 
-			if (obj instanceof TreeObject) {
-				image = ((TreeObject) obj).getImage();
-			} else {
-				// er, this is a bit odd, means we're not looking at one of our own classes
-				image = PlatformUI.getWorkbench().getSharedImages().getImage(ISharedImages.IMG_OBJ_ELEMENT);
-			}
-			
-			return image;
-		}
-	}
-	
-	/**
-	 * The constructor.
-	 */
-	public CBuildConfigView() {
-	}
-
-	/**
-	 * This is a callback that will allow us
-	 * to create the viewer and initialize it.
-	 * 
-	 * @param	parent					the owner of the control 
-	 */
-	public void createPartControl(Composite parent) {
-		viewer = new TreeViewer(parent, SWT.SINGLE | SWT.H_SCROLL | SWT.V_SCROLL);
-		viewer.setContentProvider(new ViewContentProvider());
-		viewer.setLabelProvider(new ViewLabelProvider());
-		viewer.setSorter(new ViewerSorter(){});
-		viewer.setInput(ResourcesPlugin.getWorkspace());
-		makeActions();
-		hookContextMenu();
-		hookDoubleClickAction();
-		contributeToActionBars();
-		
-		// register the listener for changes to the tree
-		ResourcesPlugin.getWorkspace().addResourceChangeListener(this);
-		
-		// Set this button to disable by default since there is no valid selection at this point.
-		actionEditConfig.setEnabled(false);
-	}
-
-	private void hookContextMenu() {
-		MenuManager menuMgr = new MenuManager("_#PopupMenu");
-		menuMgr.setRemoveAllWhenShown(true);
-		menuMgr.addMenuListener(new IMenuListener() {
-			public void menuAboutToShow(IMenuManager manager) {
-				CBuildConfigView.this.fillContextMenu(manager);
-			}
-		});
-		Menu menu = menuMgr.createContextMenu(viewer.getControl());
-		viewer.getControl().setMenu(menu);
-		getSite().registerContextMenu(menuMgr, viewer);
-	}
-
-	private void hookDoubleClickAction() {
-		viewer.addDoubleClickListener(new IDoubleClickListener() {
-			public void doubleClick(DoubleClickEvent event) {
-				ISelection selItem = viewer.getSelection();
-				Object objItem = ((IStructuredSelection) selItem).getFirstElement();
-				if (objItem.getClass().equals(TreeObject.class)) {
-					actionEditConfig.run();
-				}
-				else {
-				// be nice and expand or contract the tree when the user double clicks on a node
-					for (Iterator iter = ((IStructuredSelection) selItem).iterator(); iter.hasNext(); ) {
-						Object objNode = iter.next();
-						if (viewer.getExpandedState(objNode)) {
-							viewer.collapseToLevel(objNode, 1);
-						}
-						else {
-							viewer.expandToLevel(objNode, 1);
-						}
-					}
-				}
-			}
-		});
-	}
-		
-	private void contributeToActionBars() {
-		IActionBars bars = getViewSite().getActionBars();
-		fillLocalPullDown(bars.getMenuManager());
-		fillLocalToolBar(bars.getToolBarManager());
-	}
-
-	private void fillLocalPullDown(IMenuManager manager) {
-		manager.add(actionEditConfig);
-		manager.add(new Separator());
-		//manager.add(actionBuild);
-	}
-
-	/**
-	 * this method populates the right-click menu
-	 */
-	private void fillContextMenu(IMenuManager manager) {
-		
-		ISelection selItem = viewer.getSelection();
-		Object objItem = ((IStructuredSelection)selItem).getFirstElement();
-		
-		if (objItem instanceof TreeProject) {
-			manager.add(actionNewConfig);
-			// manager.add(actionBuild);
-		} else if (objItem instanceof TreeConfiguration) {
-			TreeConfiguration treeConf = (TreeConfiguration) objItem;		
-			manager.add(actionEditConfig);
-			manager.add(actionNewConfig);
-			CBuildAction build = new CBuildAction(treeConf.getProject(), treeConf.getConfiguration());
-			build.setImageDescriptor(CBuilderImages.DESC_IMG_ACTION_BUILD_CONFIG);
-			manager.add(build);
-			
-			ICBuildConfig item = treeConf.getConfiguration();
-
-			if (item != null) {
-				// TODO: fix this
-				// actionMakePrimary.setEnabled(!item.getIsPrimary());
-				actionMakePrimary.setDescription(actionMakePrimary.isEnabled() ? MSG_MAKEPRIMARY : MSG_ALREADYPRIMARY);
-				actionMakePrimary.setToolTipText(actionMakePrimary.getDescription());
-				// TODO: fix this
-				// actionDeleteConfig.setEnabled(!item.getIsPrimary());
-				actionDeleteConfig.setDescription(actionDeleteConfig.isEnabled() ? MSG_CANDELETE : MSG_NODELETE);
-				actionDeleteConfig.setToolTipText(actionDeleteConfig.getDescription());
-				manager.add(actionMakePrimary);
-				manager.add(actionDeleteConfig);
-			}
-		}
-
-		// Other plug-ins can contribute there actions here
-		manager.add(new Separator("Additions"));
-	}
-	
-	private void fillLocalToolBar(IToolBarManager manager) {
-		manager.add(actionEditConfig);
-		//manager.add(actionBuild);
-		manager.add(new Separator());
-	}
-
-	private void updateActionEnabled () {
-		IStructuredSelection sel = (IStructuredSelection)viewer.getSelection();
-		TreeObject child = (TreeObject) sel.getFirstElement();
-		boolean enabled = ((sel.size() > 0) && (child instanceof TreeConfiguration));
-		
-		actionEditConfig.setEnabled(enabled);
-		//actionBuild.setEnabled(true);
-	}
-
-	private ICBuildConfigManager getBuildConfigurationManager() {
-		return BuilderPlugin.getDefault().getBuildConfigurationManager();
-	}
-
-	private Shell getShell() {
-		return viewer.getControl().getShell();
-	}
-
-	private Object getElementFromSelection(ISelection sel) {
-		Object element = null;
-		if (sel instanceof IStructuredSelection) {
-			element = ((IStructuredSelection) sel).getFirstElement();
-		}
-		return element;
-	}
-	
-	private void makeActions() {
-
-		//////////////////////////////////////////////
-		// Action: EDIT
-		//////////////////////////////////////////////
-
-		actionEditConfig = new Action() {
-			public void run() {
-				Object element = getElementFromSelection(viewer.getSelection());
-				if ((element != null) && (element instanceof TreeConfiguration)) {
-					TreeConfiguration treeConf = (TreeConfiguration) element;
-					CBuildConfigDialog dlg = null;
-					
-					dlg = new CBuildConfigDialog(getShell(), treeConf.getConfiguration()); 
-
-					if (dlg.open() == dlg.OK) {
-						viewer.refresh();					
-					}										
-				}
-			}
-		};
-		
-		actionEditConfig.setText("Edit...");
-		actionEditConfig.setToolTipText("Edit Configuration");
-		actionEditConfig.setImageDescriptor(CBuilderImages.DESC_IMG_ACTION_EDIT_CONFIG);
-
-		//////////////////////////////////////////////
-		// Action: BUILD
-		//////////////////////////////////////////////
-		
-//		actionBuild = new Action() {
-//		public void run() {
-//				IStructuredSelection selList = (IStructuredSelection) viewer.getSelection();
-//				for (Iterator iter = selList.iterator(); iter.hasNext();) {
-//					Object selItem = (Object) iter.next();
-//					if (selItem instanceof TreeObject) {
-//						TreeObject selConfig = (TreeObject) selItem;
-//						IRunnableWithProgress builder = new CBuildConfig(selConfig.getAssocProject(), selConfig.getBuildConfig());
-//						try {
-//							new ProgressMonitorDialog(getSite().getShell()).run(true, true, builder);
-//						}
-//						catch (InterruptedException e) {}
-//						catch (InvocationTargetException e) {}
-//					}
-//				}
-//			}
-//		};
-//
-//		actionBuild.setText("Build");
-//		actionBuild.setToolTipText("Performing Build");
-//		actionBuild.setImageDescriptor(CBuilderImages.DESC_IMG_ACTION_BUILD_CONFIG);
-//
-//		doubleClickAction = new Action() {
-//			public void run() {
-//				ISelection selection = viewer.getSelection();
-//				Object obj = ((IStructuredSelection)selection).getFirstElement();
-//				showMessage("Try to perform a build here" + obj.toString());
-//			}
-//		};
-
-		//////////////////////////////////////////////
-		// Action: NEW
-		//////////////////////////////////////////////
-		
-		actionNewConfig = new Action() {
-			public void run() {
-				Object element = getElementFromSelection(viewer.getSelection());
-				if ((element != null) && (element instanceof TreeProject)) {
-					TreeProject treeProject = (TreeProject) element;
-					ICBuildConfigWorkingCopy cfg = null;
-					CBuildConfigDialog dlg = null;
-
-					cfg = getBuildConfigurationManager().getConfiguration(treeProject.getProject(), null);
-					dlg = new CBuildConfigDialog(getShell(), cfg); 
-
-					if (dlg.open() == dlg.OK) {
-						viewer.refresh();
-					}
-				}
-			}	
-		};
-			
-		actionNewConfig.setText("New...");
-		actionNewConfig.setToolTipText("Add new configuration");
-		actionNewConfig.setImageDescriptor(CBuilderImages.DESC_IMG_ACTION_NEW_CONFIG);
-
-		//////////////////////////////////////////////
-		// Action: MAKE PRIMARY
-		//////////////////////////////////////////////
-
-		actionMakePrimary = new Action() {
-			public void run() {
-				Object element = getElementFromSelection(viewer.getSelection());
-				if ((element != null) && (element instanceof TreeConfiguration)) {
-					TreeConfiguration treeConfig = (TreeConfiguration) element;
-					// TODO: Use getBuildConfigurationManager(), 
-					// treeConfig.getBuildConfig() to set primary config
-					viewer.refresh();
-				}
-			}
-		};
-			
-		actionMakePrimary.setText("Make Primary");
-		actionMakePrimary.setToolTipText("Make this the primary configuration");
-//		actionMakePrimary.setImageDescriptor(PlatformUI.getWorkbench().getSharedImages().
-//			getImageDescriptor(ISharedImages.IMG_OBJS_TASK_TSK));
-
-
-		//////////////////////////////////////////////
-		// Action: DELETE
-		//////////////////////////////////////////////
-
-		actionDeleteConfig = new Action() {
-			public void run() {
-				Object element = getElementFromSelection(viewer.getSelection());
-				if ((element != null) && (element instanceof TreeConfiguration)) {
-					TreeConfiguration treeConfig = (TreeConfiguration) element;
-					if (MessageDialog.openConfirm(getShell(), "Removing build configuration", "Are you sure you want to remove this build configuration?")) {
-						viewer.refresh();
-					}
-				}
-			}
-		};
-		
-		actionDeleteConfig.setText("Remove");
-		actionDeleteConfig.setToolTipText("Remove this configuration");
-		actionMakePrimary.setImageDescriptor(CBuilderImages.DESC_IMG_ACTION_DELETE_CONFIG);	
-	
-		viewer.addSelectionChangedListener(new ISelectionChangedListener() {
-			public void selectionChanged (SelectionChangedEvent event) {
-				updateActionEnabled();
-			}
-		});	
-	}
-
-	private void showMessage(String message) {
-		MessageDialog.openInformation(getShell(), "Build Configuration", message);
-	}
-
-	/**
-	 * Passing the focus request to the viewer's control.
-	 */
-	public void setFocus() {
-		viewer.getControl().setFocus();
-	}
-
-	/**
-	 * clean-up
-	 */	
-	public void dispose()
-	{
-		// remove from the workspace our listener
-		//getViewSite().getPage().removePostSelectionListener(this);
-		ResourcesPlugin.getWorkspace().removeResourceChangeListener(this);
-	}
-	
-	/**
-	 * given a project, updates the view with the contents of
-	 * the build configuration for that project
-	 * 
-	 * @param prjTarget the new project that this view should adjust to
-	 */
-	private void updateView(IProject prjTarget) 
-	{
-		Assert.isNotNull(prjTarget);
-	}
-		
-	class CResourceDeltaVisitor implements IResourceDeltaVisitor {
-		
-		private boolean bRefreshView = false;
-		
-	    public boolean visit(IResourceDelta delta) {
-	     	
-	     	IResource resource = delta.getResource();
-	     	boolean bVisitChildren = true;
-	     	int nKind;
-	     	
-	     	if (resource instanceof IProject) {
-		        nKind = delta.getKind();
-	        	if (nKind == IResourceDelta.OPEN || nKind == IResourceDelta.ADDED || nKind == IResourceDelta.REMOVED || nKind == IResourceDelta.CHANGED) {
-	        		bRefreshView = true;
-	        	}
-	        	// don't recurse past the project level
-			    bVisitChildren = false;
-	     	}
-	     	
-	     	return bVisitChildren;
-	    }
-	    
-		public boolean getRefreshView() {
-			return bRefreshView;
-		}
-		
-	 }
-	
-
-	/**
-	 * @see org.eclipse.core.resources.IResourceChangeListener#resourceChanged(IResourceChangeEvent)
-	 */
-	public void resourceChanged(IResourceChangeEvent event) {
-
-		CResourceDeltaVisitor changeVisitor = new CResourceDeltaVisitor();
-		
-		try {
-			event.getDelta().accept(changeVisitor);
-		} 
-		catch (CoreException e) {
-			System.err.println(e.toString());
-		}
-
-		// refresh the view so the user can see the changes.	
-		if (changeVisitor.getRefreshView()) {
-			this.refresh();
-		}
-		
-	}
-	
-	/**
-	 * Wrapper for users of this object to force a view refresh
-	 */
-	public void refresh() {
-		Display.getDefault().syncExec(new Runnable()
-			{
-				public void run() { 
-					viewer.refresh();
-				}
-			}
-		);
-	}
-}
Index: build/org/eclipse/cdt/ui/builder/internal/CBuildVariableDialog.java
===================================================================
RCS file: build/org/eclipse/cdt/ui/builder/internal/CBuildVariableDialog.java
diff -N build/org/eclipse/cdt/ui/builder/internal/CBuildVariableDialog.java
--- build/org/eclipse/cdt/ui/builder/internal/CBuildVariableDialog.java	17 Feb 2003 19:13:07 -0000	1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,297 +0,0 @@
-/**********************************************************************
- * Copyright (c) 2002,2003 Timesys 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: 
- * Timesys - Initial API and implementation
- **********************************************************************/
-
-package org.eclipse.cdt.ui.builder.internal;
-
-import java.io.File;
-import java.io.FileFilter;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.Map;
-
-import org.eclipse.cdt.core.builder.BuilderPlugin;
-import org.eclipse.cdt.core.builder.ICBuildVariablePoint;
-import org.eclipse.cdt.core.builder.model.CBuildVariable;
-import org.eclipse.cdt.core.builder.model.ICBuildVariable;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.dialogs.IDialogConstants;
-import org.eclipse.jface.viewers.DoubleClickEvent;
-import org.eclipse.jface.viewers.IDoubleClickListener;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.ITreeContentProvider;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.jface.viewers.TreeViewer;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.jface.viewers.ViewerSorter;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Combo;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.ISharedImages;
-import org.eclipse.ui.PlatformUI;
-
-/**
- * @author gene.sally
- *
- * This class displays the selection tool for library paths or libraries
- * 
- */
-public class CBuildVariableDialog extends Dialog {
-
-	private static final int DLG_WIDTH = 60;		// for setting the height and width of the dialog
-	private static final int DLG_HEIGHT = 25;
-
-	private Combo 				fBrowseHow;			// combo control 
-	private TreeViewer 		fTree;				// tree view control 
-	private String 			fTitle;				// title for dialog
-	private Map 				fBuildVariables;
-	private ICBuildVariable	fSelection;
-
-	private class CNoFiles implements FileFilter {
-		public boolean accept(File file) {
-			return (file.isDirectory() && !file.getName().equals(".metadata"));
-		}
-	}
-
-	private class FileLabelProvider extends LabelProvider {
-	
-		private final Image IMG_FOLDER= PlatformUI.getWorkbench().getSharedImages().getImage(ISharedImages.IMG_OBJ_FOLDER);
-		private final Image IMG_FILE= PlatformUI.getWorkbench().getSharedImages().getImage(ISharedImages.IMG_OBJ_FILE);
-	
-		public Image getImage(Object element) {
-			if (element instanceof File) {
-				File curr= (File) element;
-				if (curr.isDirectory()) {
-					return IMG_FOLDER;
-				} else {
-					return IMG_FILE;
-				}
-			}
-			return null;
-		}
-	
-		public String getText(Object element) {
-			if (element instanceof File) {
-				return ((File) element).getName();
-			}
-			return super.getText(element);
-		}
-	}
-	
-	private class FileContentProvider implements ITreeContentProvider {
-		
-		private final Object[] EMPTY= new Object[0];
-		
-		public Object[] getChildren(Object parentElement) {
-			if (parentElement instanceof File) {
-				File[] children = ((File) parentElement).listFiles(new CNoFiles());
-				
-				if (children != null) {
-					return children;
-				}
-			}
-			return EMPTY;
-		}
-	
-		public Object getParent(Object element) {
-			if (element instanceof File) {
-				return ((File) element).getParentFile();
-			}
-			return null;
-		}
-	
-		public boolean hasChildren(Object element) {
-			return getChildren(element).length > 0;
-		}
-	
-		public Object[] getElements(Object element) {
-			return getChildren(element);
-		}
-	
-		public void dispose() {
-		}
-	
-		public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
-		}
-	
-	}
-
-	private class CDoubleClickInTree implements IDoubleClickListener {
-
-		public void doubleClick(DoubleClickEvent event) {
-			
-			ISelection selection; 
-			
-			selection = fTree.getSelection();
-			if (selection != null) {
-				updateSelection();
-				getButton(OK).notifyListeners(SWT.Selection, new Event());
-			}
-			
-		}
-
-	}
-
-	public CBuildVariableDialog(Shell parentShell, String title) {
-		super(parentShell);
-		fTitle = title;
-		fBuildVariables = getBuildVariables();
-	}
-
-	public ICBuildVariable getSelection() {
-		return fSelection;
-	}
-	
-	protected Control createContents(Composite parent) {
-
-		super.createContents(parent);
-		 
-		Composite composite = (Composite) getDialogArea();		
-		
-		GridLayout layout = new GridLayout();
-		layout.marginHeight = 5;
-		layout.marginWidth = 5;
-		layout.numColumns = 2;
-		layout.makeColumnsEqualWidth = false;
-		composite.setLayout(layout);
-		
-		// row 1
-		new Label(composite, SWT.NULL).setText(("Starting_Point_1")); //$NON-NLS-1$
-		
-		fBrowseHow = new Combo(composite, SWT.LEFT | SWT.BORDER | SWT.READ_ONLY);
-		fBrowseHow.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_BEGINNING | GridData.VERTICAL_ALIGN_BEGINNING | GridData.FILL_HORIZONTAL));
-
-		for (Iterator iter = fBuildVariables.entrySet().iterator(); iter.hasNext();) {
-			Map.Entry element = (Map.Entry) iter.next();
-			String value = element.getValue().toString();		
-			fBrowseHow.add(value);
-		}
-
-		fBrowseHow.setData(fBuildVariables);
-		fBrowseHow.addSelectionListener(new SelectionAdapter() 
-			{
-				public void widgetSelected(SelectionEvent sel) {
-					String strSelection = fBrowseHow.getText();
-					if (strSelection != null && fTree != null) {
-						IPath path = expandBuildVar(strSelection);
-						if (path != null) {
-							fTree.setInput(path.toFile());
-							CBuildVariableDialog.this.getButton(IDialogConstants.OK_ID).setEnabled(fTree.getTree().getItemCount() != 0);
-						}
-					}
-				}
-			}
-		
-		);
-		fBrowseHow.select(0);
-		
-		// row 2
-		fTree = new TreeViewer(composite, SWT.LEFT | SWT.BORDER | SWT.READ_ONLY);
-		GridData gdTree = new GridData(GridData.HORIZONTAL_ALIGN_BEGINNING | GridData.VERTICAL_ALIGN_BEGINNING | GridData.FILL_BOTH);
-		gdTree.horizontalSpan = 2;
-		
-		gdTree.widthHint= convertWidthInCharsToPixels(DLG_WIDTH);
-		gdTree.heightHint= convertHeightInCharsToPixels(DLG_HEIGHT);	
-		fTree.getControl().setLayoutData(gdTree);
-		fTree.setLabelProvider(new FileLabelProvider());
-		fTree.setSorter(new ViewerSorter() {});
-		fTree.setContentProvider(new FileContentProvider());
-	
-		fTree.setInput(expandBuildVar((String) fBuildVariables.keySet().iterator().next()));
-		
-		fTree.addDoubleClickListener(new CDoubleClickInTree());
-		
-		return composite;
-	}
-
-	/**
-	 * Method expandBuildVar.
-	 * @param string
-	 */
-	private IPath expandBuildVar(String name) {
-		ICBuildVariable bv = (ICBuildVariable) fBuildVariables.get(name);
-		return new Path((null != bv) ? bv.getValue() : "");
-	}
-
-
-	/**
-	 * Method getBuildVariables.
-	 * @return Map
-	 */
-	private Map getBuildVariables() {
-		Map vars = new HashMap();
-		try {
-			Map providers = BuilderPlugin.getDefault().getBuildVariableProviders();
-			for (Iterator iter = providers.entrySet().iterator(); iter.hasNext();) {
-				ICBuildVariablePoint expt = (ICBuildVariablePoint) iter.next();
-				ICBuildVariable[] bv = expt.getProvider().getVariables();
-				for (int i = 0; i < bv.length; i++) {
-					vars.put(bv[i].getFixed(), bv[i]);
-				}
-			}
-		} catch (CoreException e) {
-			vars.clear();
-		}
-		return vars;
-	}
-
-	/**
-	 * @see org.eclipse.jface.dialogs.Dialog#okPressed()
-	 */
-	protected void okPressed() {
-		updateSelection();				
-		super.okPressed();
-	}
-
-	/**
-	 * @see org.eclipse.jface.window.Window#configureShell(Shell)
-	 */
-	protected void configureShell(Shell newShell) {
-		super.configureShell(newShell);
-		newShell.setText(fTitle);
-	}
-	
-	private void updateSelection() {
-
-		ISelection selection; 					// the current selection 
-		
-		// store the result of the user selection 
-		selection = fTree.getSelection();
-		if (selection != null) {
-			File selectedPath = (File) ((StructuredSelection) selection).getFirstElement();
-			if (selectedPath != null) {
-				String strCurrRoot = fBrowseHow.getText();
-				IPath selPath = new Path(selectedPath.getAbsolutePath());
-				ICBuildVariable bv = (ICBuildVariable) fBuildVariables.get(strCurrRoot);
-				IPath currPath = new Path((null != bv) ? bv.getValue() : "");
-				int nMatchCount = currPath.matchingFirstSegments(selPath);
-				IPath delta = selPath.removeFirstSegments(nMatchCount);
-				delta = delta.setDevice(null);
-				fSelection = new CBuildVariable(delta.toString(), bv);
-			}
-		}
-	
-	}
-	
-
-}
Index: build/org/eclipse/cdt/ui/builder/internal/CBuilderImages.java
===================================================================
RCS file: build/org/eclipse/cdt/ui/builder/internal/CBuilderImages.java
diff -N build/org/eclipse/cdt/ui/builder/internal/CBuilderImages.java
--- build/org/eclipse/cdt/ui/builder/internal/CBuilderImages.java	17 Feb 2003 19:13:07 -0000	1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,149 +0,0 @@
-/**********************************************************************
- * Copyright (c) 2002,2003 Timesys 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: 
- * Timesys - Initial API and implementation
- **********************************************************************/
-
-package org.eclipse.cdt.ui.builder.internal;
-
-import java.net.MalformedURLException;
-import java.net.URL;
-
-import org.eclipse.cdt.ui.CUIPlugin;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.resource.ImageRegistry;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.widgets.Display;
-
-/**
- * @author gene.sally
- *
- * Container for C Builder images. Defines constants to the images in the project
- * and creates the image descriptor objects for these files so we can have nice
- * cached image management the way Eclipse intended.
- * 
- * To add an image:
- * 1) Place it in the icons/all folder in this project.
- * 2) Create a IMG_* constant for it's name along.
- * 3) Create a DESC_IMG_* constant for the image.
- */
-public class CBuilderImages {
-
-	// NO I18N on these strings!!!
-	private static final String NAME_PREFIX = "org.eclipse.cdt.ui.builder."; //$NON-NLS-1$
-	private static final int NAME_PREFIX_LENGTH = NAME_PREFIX.length();
-
-	private static URL m_IconFolder = null;
-	private static ImageRegistry m_ImageRegistry = null;
-
-	/**
-	 * the icon folder won't change and the other static
-	 * methods/constants need this, so init as a static
-	 */
-	static 
-	{
-		try {
-			m_IconFolder = new URL( CUIPlugin.getDefault().getDescriptor().getInstallURL(), "icons/"); //$NON-NLS-1$
-		} catch( MalformedURLException e ) {
-			/* do nothing right now, but we should be doing something */
-		}
-	}
-	
-	// the following lists all of the images in the system, 
-	// the constants will be expanded to something on the filesystem when converted into 
-	// image descroptors that are later turned into real Image Objects when needed.
-
-	public final static String IMG_CONFIG_COMPILER = NAME_PREFIX + "config-compiler.gif"; //$NON-NLS-1$
-	public final static String IMG_CONFIG_LINKER = NAME_PREFIX + "config-linker.gif"; //$NON-NLS-1$
-	public final static String IMG_CONFIG_PREPOCESSOR = NAME_PREFIX + "config-preprocessor.gif"; //$NON-NLS-1$
-	public final static String IMG_CONFIG_DEBUG = NAME_PREFIX + "config-debug.gif"; //$NON-NLS-1$
-	public final static String IMG_CONFIG_PROFILE = NAME_PREFIX + "config-profile.gif"; //$NON-NLS-1$
-	public final static String IMG_CONFIG_RELEASE = NAME_PREFIX + "config-release.gif"; //$NON-NLS-1$
-	public final static String IMG_ACTION_NEW_CONFIG = NAME_PREFIX + "action-newconfig.gif"; //$NON-NLS-1$
-	public final static String IMG_ACTION_EDIT_CONFIG = NAME_PREFIX + "action-editconfig.gif"; //$NON-NLS-1$
-	public final static String IMG_ACTION_BUILD_CONFIG = NAME_PREFIX + "action-buildconfig.gif"; //$NON-NLS-1$
-	public final static String IMG_ACTION_DELETE_CONFIG = NAME_PREFIX + "action-deleteconfig.gif"; //$NON-NLS-1$
-
-	// image prefix.  for our purposes, slam all fo these into the same folder
-	// but leave the opporiunity for us to create sub-folders if necessary
-
-	public final static String PREFIX_ALL = "full/build16"; //$NON-NLS-1$
-
-	// create the image descriptors from the above constants 	
-
-	public final static ImageDescriptor DESC_IMG_CONFIG_COMPILER = getImageDescriptor(PREFIX_ALL, IMG_CONFIG_COMPILER);
-	public final static ImageDescriptor DESC_IMG_CONFIG_LINKER = getImageDescriptor(PREFIX_ALL, IMG_CONFIG_LINKER);
-	public final static ImageDescriptor DESC_IMG_CONFIG_PREPOCESSOR = getImageDescriptor(PREFIX_ALL, IMG_CONFIG_PREPOCESSOR);
-	public final static ImageDescriptor DESC_IMG_CONFIG_DEBUG = getImageDescriptor(PREFIX_ALL, IMG_CONFIG_DEBUG);
-	public final static ImageDescriptor DESC_IMG_CONFIG_PROFILE = getImageDescriptor(PREFIX_ALL, IMG_CONFIG_PROFILE);
-	public final static ImageDescriptor DESC_IMG_CONFIG_RELEASE = getImageDescriptor(PREFIX_ALL, IMG_CONFIG_RELEASE);
-	public final static ImageDescriptor DESC_IMG_ACTION_NEW_CONFIG = getImageDescriptor(PREFIX_ALL, IMG_ACTION_NEW_CONFIG);
-	public final static ImageDescriptor DESC_IMG_ACTION_EDIT_CONFIG = getImageDescriptor(PREFIX_ALL, IMG_ACTION_EDIT_CONFIG);
-	public final static ImageDescriptor DESC_IMG_ACTION_BUILD_CONFIG = getImageDescriptor(PREFIX_ALL, IMG_ACTION_BUILD_CONFIG);
-	public final static ImageDescriptor DESC_IMG_ACTION_DELETE_CONFIG = getImageDescriptor(PREFIX_ALL, IMG_ACTION_DELETE_CONFIG);
-
-	private static ImageRegistry getImageRegistry() {
-		if (null == m_ImageRegistry) {
-			Display display = (Display.getCurrent() != null) ? Display.getCurrent() : Display.getDefault();
-			m_ImageRegistry = new ImageRegistry(display);
-		}
-		return m_ImageRegistry;
-	}
-
-	/** 
-	 * Returns the image object from the image cache matching the requested name
-	 * 
-	 * @param strImageIdent		the identifier of the inmage, see one of the static IMG_ decls in this calss
-	 * @return the image for this item, null if the image was not found
-	 * 
-	 */
-	public static Image getImage(String strImageIdent) {
-		return getImageRegistry().get(strImageIdent);
-	}
-
-	/**
-	 * Gets the location of an image based on it's location on the file system,
-	 * 
-	 * @param	strPrefix		the folder under the icon folder where this file resides
-	 * @param	strName			name of the image file
-	 * 
-	 * @return the URL to the image requested.
-	 */
-	private static URL getFilesystemName(String strPrefix, String strName) throws MalformedURLException {
-		if (m_IconFolder == null) {
-			throw new MalformedURLException();
-		}
-		StringBuffer buffer = new StringBuffer(strPrefix);
-		buffer.append('/');
-		buffer.append(strName);
-		return new URL(m_IconFolder, buffer.toString());
-		
-	}
-	
-	/**
-	 * Creates an image descriptor for the requrested image
-	 * 
-	 * @param	strPrefix		the folder under the icon folder where this file resides
-	 * @param	strName			name of the image file
-	 * 
-	 * @return the requested image descriptor, or image not found if the image could not be located on the file system.
-	 */
-	private static ImageDescriptor getImageDescriptor(String strPrefix, String strName) {
-		ImageDescriptor descriptor = null;
-		
-		try {
-			descriptor = ImageDescriptor.createFromURL(getFilesystemName(strPrefix, strName.substring(NAME_PREFIX_LENGTH)));
-			getImageRegistry().put(strName, descriptor);
-		}
-		catch(MalformedURLException e)	{
-			descriptor = ImageDescriptor.getMissingImageDescriptor();
-		}
-		
-		return descriptor;
-	}
-}
\ No newline at end of file
Index: build/org/eclipse/cdt/ui/builder/internal/CLibFileDialog.java
===================================================================
RCS file: build/org/eclipse/cdt/ui/builder/internal/CLibFileDialog.java
diff -N build/org/eclipse/cdt/ui/builder/internal/CLibFileDialog.java
--- build/org/eclipse/cdt/ui/builder/internal/CLibFileDialog.java	17 Feb 2003 19:13:07 -0000	1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,421 +0,0 @@
-/**********************************************************************
- * Copyright (c) 2002,2003 Timesys 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: 
- * Timesys - Initial API and implementation
- **********************************************************************/
-
-package org.eclipse.cdt.ui.builder.internal;
-
-import java.io.File;
-import java.io.FileFilter;
-import java.util.HashMap;
-
-import org.eclipse.cdt.core.builder.model.ICBuildVariable;
-import org.eclipse.cdt.core.builder.model.ICToolchain;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.jface.viewers.DoubleClickEvent;
-import org.eclipse.jface.viewers.IDoubleClickListener;
-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.LabelProvider;
-import org.eclipse.jface.viewers.SelectionChangedEvent;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.jface.viewers.TreeViewer;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.jface.viewers.ViewerSorter;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.List;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.ISharedImages;
-import org.eclipse.ui.PlatformUI;
-
-/**
- * @author gene.sally
- *
- * To change this generated comment edit the template variable "typecomment":
- * Window>Preferences>Java>Templates.
- * To enable and disable the creation of type comments go to
- * Window>Preferences>Java>Code Generation.
- */
-public class CLibFileDialog extends Dialog {
-	
-	private static final int DLG_WIDTH = 60;
-	private static final int DLG_HEIGHT = 25;
-
-	private ICBuildVariable[] fLibPaths;	// the list of library paths used to populate the drop down
-	private ICToolchain fToolchain;		// selected toolchain
-	private TreeViewer fFileTree;			// tree control that's displayed
-	private File fSelection;				// what the user selected in the dialog
-	private List fLibNames;
-	
-	private class CItemSelectedIsLibrary implements ISelectionChangedListener {
-		
-		/**
-		 * @see org.eclipse.jface.viewers.ISelectionChangedListener#selectionChanged(SelectionChangedEvent)
-		 */
-		public void selectionChanged(SelectionChangedEvent event) {
-			
-			// only enable the OK button when the user is resting on a file
-			Object selection = ((IStructuredSelection) event.getSelection()).getFirstElement();			
-			getButton(OK).setEnabled(selection instanceof File);
-		}
-	}
-
-	private class CDoubleClickInTree implements IDoubleClickListener {
-
-		public void doubleClick(DoubleClickEvent event) {
-
-			// make sure that the user has double-clicked on a file before accepting this as the
-			// selection			
-			Object selection = ((IStructuredSelection) event.getSelection()).getFirstElement();
-			if (selection instanceof File) {
-				getButton(OK).notifyListeners(SWT.Selection, new Event());
-			}
-		}
-	}
-
-	private class FileLabelProvider extends LabelProvider {
-	
-		private final Image IMG_FOLDER= PlatformUI.getWorkbench().getSharedImages().getImage(ISharedImages.IMG_OBJ_FOLDER);
-		private final Image IMG_FILE= PlatformUI.getWorkbench().getSharedImages().getImage(ISharedImages.IMG_OBJ_FILE);
-
-		public Image getImage(Object element) {
-
-			if (element instanceof File) {
-				if (((File) element).isFile()) {
-					return IMG_FILE;
-				}
-			}
-			else if (element instanceof TreeLibPathObject) {
-				return IMG_FOLDER;
-			}
-			
-			return null;
-		}
-	
-		public String getText(Object element) {
-	
-			if (element instanceof File) {
-				return ((File) element).getName();
-			} else if (element instanceof TreeLibPathObject) {
-				return ((TreeLibPathObject) element).toString();
-			}
-			
-			return super.getText(element);
-		}
-	}
-	
-	private class CNoDirectories implements FileFilter {
-
-		/**
-		 * @see java.io.FileFilter#accept(File)
-		 */
-		public boolean accept(File pathname) {
-			
-			boolean isLibFile = false;
-			if (pathname.isFile()) {
-				String name = pathname.getName();
-				if ((name.endsWith(".lib")) || (name.endsWith(".a")) || (name.indexOf(".so") != -1)) {
-					isLibFile = true;
-				}
-			}	
-			return (isLibFile);
-		}
-	}
-
-	
-	private class TreeLibPathObject implements IAdaptable {
-		
-		private ICBuildVariable m_location;			// the location this object represents
-		private File m_fileSystem;				// the representation of this object on the file system
-		private TreeParent m_parent;			// parent of this object
-		
-		public TreeLibPathObject(ICBuildVariable location, ICToolchain toolchain) {
-			
-			if (location != null) {
-				m_location = location;
-				m_fileSystem = new File(location.getValue());
-			}
-			
-		}
-
-		public File[] getChildren() {			
-			
-			// get the files in the file system matching this item
-			File[] children  = m_fileSystem.listFiles(new CNoDirectories());
-
-			return children;
-		}
-
-		public boolean hasChildren() {
-			
-			// ug, not the best for performance, consider caching
-			return getChildren().length != 0;
-		}
-		
-		public Object getAdapter(Class key) {
-			return null;
-		}
-		
-		public ICBuildVariable getBuildVar() {
-			return m_location;
-		}
-		
-		public String toString() {
-			return m_location.toString();
-		}
-		
-		public TreeParent getParent() {
-			return m_parent;
-		}
-		
-		public void setParent(TreeParent parent) {
-			m_parent = parent;
-		}
-		
-	}
-	
-	private class TreeParent  {
-	
-		private HashMap m_children;
-		
-		public TreeParent() {
-			m_children = new HashMap();
-		}
-		public void addChild(TreeLibPathObject child) {
-			m_children.put(child.m_fileSystem.getAbsolutePath(), child);
-			child.setParent(this);
-		}
-		public void removeChild(TreeLibPathObject child) {
-			m_children.remove(child.m_fileSystem.getAbsolutePath());
-			child.setParent(null);
-		}
-		public TreeLibPathObject[] getChildren() {
-			
-			int nArraySize = m_children.entrySet().size();
-			TreeLibPathObject[] retval = (TreeLibPathObject[]) m_children.values().toArray(new TreeLibPathObject[nArraySize]);
-			
-			return retval;
-
-		}
-		
-		public boolean hasChildren() {
-			return m_children.entrySet().size() > 0;
-		}
-		public TreeLibPathObject matchingParent(File test) {
-			
-			String parentPath = test.getParent();
-			
-			if (m_children.keySet().contains(parentPath)) {
-				return (TreeLibPathObject) m_children.get(parentPath);
-			}
-			
-			return null;
-		}
-	}
-	
-	class ViewContentProvider implements IStructuredContentProvider, 
-									   ITreeContentProvider {
-
-		private TreeParent invisibleRoot;
-	
-		public void inputChanged(Viewer v, Object oldInput, Object newInput) {}
-		public void dispose() {}
-		
-		public Object[] getElements(Object parent) {
-			
-			if (parent.equals(ResourcesPlugin.getWorkspace())) {
-			// if (parent instanceof TreeRoot) {
-				
-				if (invisibleRoot == null) {
-					initialize();
-				}
-				
-				return getChildren(invisibleRoot);
-			}
-			
-			return getChildren(parent);
-		}
-		
-		public Object getParent(Object child) {
-
-			// this is where things are going to get icky.
-			// when the child is a file type, inspect the path and see if
-			// it matches any of the parents in the list
-			if (child instanceof File) {
-				File currfile = (File) child;
-				return invisibleRoot.matchingParent(currfile);
-				
-			}
-			else if (child instanceof TreeLibPathObject) {
-				return ((TreeLibPathObject) child).getParent();
-			}
-
-			return null;
-		}
-		
-		public Object [] getChildren(Object parent) {
-
-			// the root of the tree
-			if (parent instanceof TreeParent) {
-				
-				return ((TreeParent) parent).getChildren();
-			
-			// the first level
-			} else if (parent instanceof TreeLibPathObject) {
-				
-				return ((TreeLibPathObject) parent).getChildren();
-			
-			}
-			
-			// since we're not showing anything past the first level, 
-			// just return an empty array
-			return new Object[0];
-		}
-		
-		public boolean hasChildren(Object parent) {			
-	
-			// the root of the tree
-			if (parent instanceof TreeParent) {
-				
-				return ((TreeParent) parent).hasChildren();
-			
-			// the first level
-			} else if (parent instanceof TreeLibPathObject) {
-				
-				return ((TreeLibPathObject) parent).hasChildren();
-			
-			}
-			
-			// since we're not showing anything past the first level, 
-			// just return an empty array
-			return false;
-
-		}
-	
-		private void initialize() {
-			
-			invisibleRoot = new TreeParent();
-			
-			// read from the parent's list of items 
-			for (int nIndex = 0; nIndex < fLibPaths.length; nIndex++) {
-				invisibleRoot.addChild(new TreeLibPathObject(fLibPaths[nIndex], fToolchain));
-			}
-			
-		}
-	}
-
-	// methods for CLibFileDialog
-	public CLibFileDialog(Shell shell, ICToolchain toolchain, ICBuildVariable[] libPaths) {
-		
-		super(shell);		
-		fLibPaths = libPaths;	
-		fToolchain = toolchain;
-		fLibNames = new List (shell, shell.getStyle());
-		
-	}
-
-	// methods for CLibFileDialog
-	public CLibFileDialog(Shell shell, ICToolchain toolchain, ICBuildVariable[] libPaths, List libList) {
-
-		super(shell);		
-		fLibPaths = libPaths;	
-		fToolchain = toolchain;
-		fLibNames = libList;
-
-	}	
-	protected Control createContents(Composite parent) {
-
-		super.createContents(parent);
-		 
-		Composite composite = (Composite) getDialogArea();		
-		
-		GridLayout layout = new GridLayout();
-		layout.marginHeight = 5;
-		layout.marginWidth = 5;
-		layout.numColumns = 1;
-		composite.setLayout(layout);
-		
-		// row 1
-		fFileTree = new TreeViewer(composite, SWT.LEFT | SWT.BORDER | SWT.READ_ONLY);
-		GridData gdTree = new GridData(GridData.HORIZONTAL_ALIGN_BEGINNING | GridData.VERTICAL_ALIGN_BEGINNING | GridData.FILL_BOTH);
-		
-		gdTree.widthHint= convertWidthInCharsToPixels(DLG_WIDTH);
-		gdTree.heightHint= convertHeightInCharsToPixels(DLG_HEIGHT);	
-		fFileTree.getControl().setLayoutData(gdTree);
-		fFileTree.setLabelProvider(new FileLabelProvider());
-		fFileTree.setSorter(new ViewerSorter() {});
-		fFileTree.setContentProvider(new ViewContentProvider());
-	
-		fFileTree.setInput(ResourcesPlugin.getWorkspace());
-		
-		fFileTree.addSelectionChangedListener(new CItemSelectedIsLibrary());
-		fFileTree.addDoubleClickListener(new CDoubleClickInTree());
-		
-		return composite;
-	}	
-
-	/**
-	 * @see org.eclipse.jface.window.Window#configureShell(Shell)
-	 */
-	protected void configureShell(Shell newShell) {
-		super.configureShell(newShell);
-		newShell.setText(("Select_Library_1")); //$NON-NLS-1$
-	}
-
-	/**
-	 * @see org.eclipse.jface.dialogs.Dialog#okPressed()
-	 */
-	protected void okPressed() {
-
-		ISelection selection; 					// the current selection 
-		
-		selection = fFileTree.getSelection();
-		if (selection != null) {
-			fSelection = (File) ((StructuredSelection) selection).getFirstElement();
-		}
-		
-		// Let's check if this name exists or not.
-		if (fLibNames.getItemCount() > 0) {
-			boolean exists = checkExistance();
-			if (exists) {
-				return;
-			}
-		}			
-		super.okPressed();
-	}
-	
-	public File getSelection() {
-		return fSelection;
-	}
-	
-	private boolean checkExistance () {
-		String[] existingItems = fLibNames.getItems();
-		for (int i = 0; i < existingItems.length; i++) {
-			if (existingItems[i].toString().equals(getSelection().getName())) {
- 				String errorMsg = "This Identifier already exists in the Preprocessor definitions for this project";
- 				MessageDialog.openError(this.getShell(), "Naming problems", errorMsg);				
- 				return true;
- 			}
- 		}	
- 		return false;	
- 	} 
-
-}
Index: build/org/eclipse/cdt/ui/builder/internal/CNameValueDialog.java
===================================================================
RCS file: build/org/eclipse/cdt/ui/builder/internal/CNameValueDialog.java
diff -N build/org/eclipse/cdt/ui/builder/internal/CNameValueDialog.java
--- build/org/eclipse/cdt/ui/builder/internal/CNameValueDialog.java	17 Feb 2003 19:13:07 -0000	1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,275 +0,0 @@
-/**********************************************************************
- * Copyright (c) 2002,2003 Timesys 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: 
- * Timesys - Initial API and implementation
- **********************************************************************/
-
-package org.eclipse.cdt.ui.builder.internal;
-
-import org.eclipse.cdt.core.builder.util.CUtil;
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.dialogs.IDialogConstants;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.ModifyEvent;
-import org.eclipse.swt.events.ModifyListener;
-import org.eclipse.swt.graphics.FontMetrics;
-import org.eclipse.swt.graphics.GC;
-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.Label;
-import org.eclipse.swt.widgets.List;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Text;
-
-/**
- * @author sam.robb
- *
- * Simple dialog for creating/editing name-value pairs.
- */
-public class CNameValueDialog extends Dialog {
-
-	/**
-	 * Dialog title.
-	 */
-	String fTitle = "Variable";
-
-	/**
-	 * Description of property name (ex, "Definition")
-	 */
-	String fNameLabel = "Name";
-
-	/**
-	 * Description of property value (ex, "Value")
-	 */
-	String fValueLabel = "Value";
-
-	/**
-	 * Property name.
-	 */
-	String fName = "";
-	
-	/**
-	 * Property value.
-	 */
-	String fValue = "";
-	
-	/** 
-	 * Internal list to keep track of existing macro names.
-	 */
-	private List reservedNames;
-
-	private Button btnOK = null;
-	private Button btnCancel = null;
-	private Text textName = null;
-	private Text textValue = null;
-
-	/**
-	 * Constructor for CEntryDialog.
-	 * 
-	 * @param parent
-	 */
-	public CNameValueDialog(Shell parent) {
-		super(parent);
-		reservedNames =  new List (parent, parent.getStyle());
-	}
-	
-	/**
-	 * Second Constructor 
-	 * @param Shell parent, List list
-	 */
-	public CNameValueDialog (Shell parent, List list) {
-		super (parent);
-		reservedNames = list;
-	}
-
-	/**
-	 * Set the title for the dialog.
-	 * 
-	 * @param title Title to use for the dialog.
-	 */ 
-	public void setTitle(String title) {
-		fTitle = title;
-	}
-
-	/**
-	 * Set the label for the "Name" edit field in the dialog
-	 * 
-	 * @param nameLabel Label to use for the "Name" edit field.
-	 */ 
-	public void setNameLabel(String nameLabel) {
-		fNameLabel = nameLabel;
-	}
-	
-	/**
-	 * Set the label for the "Value" edit field in the dialog
-	 * 
-	 * @param valueLabel Label to use for the "Value" edit field.
-	 */ 
-	public void setValueLabel(String valueLabel) {
-		fValueLabel = valueLabel;
-	}
-
-	/**
-	 * Set the inital contents of the "Name" edit field in the dialog
-	 * 
-	 * @param name Initial value for the "Name" edit field.
-	 */ 
-	public void setName(String name) {
-		fName = name;
-	}
-	
-	/**
-	 * Set the inital contents of the "Value" edit field in the dialog
-	 * 
-	 * @param value Initial value for the "Value" edit field.
-	 */ 
-	public void setValue(String value) {
-		fValue = value;
-	}
-
-	/**
-	 * Returns the contents of the "Name" edit field in the dialog.
-	 * 
-	 * @return Property name.
-	 */
-	public String getName() {
-		return fName;
-	}
-
-	/**
-	 * Returns the contents of the "Value" edit field in the dialog.
-	 * 
-	 * @return Property value.
-	 */
-	public String getValue() {
-		return fValue;
-	}
-
-	protected Control createContents(Composite parent) {
-		Control result = super.createContents(parent);
-		updateButtonsState();
-		return result;
-	}
-
-	protected void configureShell(Shell shell) {
-		super.configureShell(shell);
-		shell.setText(fTitle);
-	}
-
-	protected Control createDialogArea(Composite parent) {
-		Composite 	composite 	= new Composite(parent, SWT.NONE);
-		GridLayout 	layout 		= new GridLayout(2, false);
-
-		layout.marginWidth	= 5;
-		layout.numColumns	= 2;
-		
-		composite.setLayout(layout);
-		
-		GC gc = new GC(composite);
-		gc.setFont(composite.getFont());
-		FontMetrics metrics = gc.getFontMetrics();
-		gc.dispose();
-		
-		int 		fieldWidthHint 	= convertWidthInCharsToPixels(metrics, 50);
-		GridData 	gd				= null;
-		Label 		label			= null;
-
-		label = new Label(composite, SWT.NONE);
-		label.setText(fNameLabel + ":");
-		
-		textName 	= new Text(composite, SWT.SINGLE | SWT.BORDER);
-		gd 			= new GridData(GridData.FILL_BOTH);
-		
-		gd.grabExcessHorizontalSpace 	= true;
-		gd.widthHint 					= fieldWidthHint;
-		
-		textName.setLayoutData(gd);
-
-		label = new Label(composite, SWT.NONE);
-		label.setText(fValueLabel + ":");
-		
-		textValue 	= new Text(composite, SWT.SINGLE | SWT.BORDER);
-		gd 			= new GridData(GridData.FILL_BOTH);
-		
-		gd.grabExcessHorizontalSpace 	= true;
-		gd.widthHint 					= fieldWidthHint;
-		
-		textValue.setLayoutData(gd);
-		
-		textName.addModifyListener(new ModifyListener() {
-			public void modifyText(ModifyEvent e) {
-				updateButtonsState();
-			}
-		});
-		
-		textValue.addModifyListener(new ModifyListener() {
-			public void modifyText(ModifyEvent e) {
-				updateButtonsState();
-			}
-		});
-		
-		textName.setText(fName);
-		textValue.setText(fValue);
-
-		return composite;
-	}
-
-	protected void createButtonsForButtonBar(Composite parent) {
-		btnOK 		= createButton(parent, IDialogConstants.OK_ID, IDialogConstants.OK_LABEL, true);
-		btnCancel 	= createButton(parent, IDialogConstants.CANCEL_ID, IDialogConstants.CANCEL_LABEL, false);
-	}
-
-	private void updateButtonsState() {
-		if (btnOK != null) {
-			btnOK.setEnabled(textName.getText().trim().length() > 0);
-		}
-	}
-
-	protected void okPressed() {
-		fName 	= textName.getText().trim();
-		fValue 	= textValue.getText().trim();
-		textValue.setText(fValue);
-		
-		// Let's first check if this name already exists or not.
-		if (reservedNames.getItemCount() > 0) {
-			boolean exists = checkExistance();
-			if (exists) {
-				return;
-			}
-		}
-		
-		// Validate the user input here.
-		boolean isValid = CUtil.isValidCIdentifier(fName);
-		if (!isValid) {
-			String errorMsg = fName + " is not a valid identifier name.";
-			MessageDialog.openError(this.getShell(), "Problem with Identifier name", errorMsg);				
-			return;
-		}
-		
-		setReturnCode(OK);
-		close();
-	}
-
-	
-	
-	private boolean checkExistance () {
-		String[] existingItems = reservedNames.getItems();
-		for (int i = 0; i < existingItems.length; i++) {
-			if (existingItems[i].toString().equals(fName)) {
-				String errorMsg = "This Identifier already exists in the Preprocessor definitions for this project";
-				MessageDialog.openError(this.getShell(), "Naming problems", errorMsg);				
-				return true;
-			}
-		}	
-		return false;	
-	} 
-}
Index: build/org/eclipse/cdt/ui/builder/internal/CToolTabGroupPoint.java
===================================================================
RCS file: build/org/eclipse/cdt/ui/builder/internal/CToolTabGroupPoint.java
diff -N build/org/eclipse/cdt/ui/builder/internal/CToolTabGroupPoint.java
--- build/org/eclipse/cdt/ui/builder/internal/CToolTabGroupPoint.java	17 Feb 2003 19:13:07 -0000	1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,57 +0,0 @@
-/**********************************************************************
- * Copyright (c) 2002,2003 Timesys 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: 
- * Timesys - Initial API and implementation
- **********************************************************************/
-
-package org.eclipse.cdt.ui.builder.internal;
-
-import org.eclipse.cdt.core.builder.internal.ACExtensionPoint;
-import org.eclipse.cdt.ui.builder.ICToolTabGroup;
-import org.eclipse.cdt.ui.builder.ICToolTabGroupPoint;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IConfigurationElement;
-
-/**
- * @author sam.robb
- */
-public class CToolTabGroupPoint
-	extends ACExtensionPoint
-	implements ICToolTabGroupPoint {
-
-	/**
-	 * Constructor.
-	 * 
-	 * @param element configuration element for the build configuration provider.
-	 */
-	public CToolTabGroupPoint(IConfigurationElement element) {
-		super(element);
-	}
-
-	/**
-	 * @see org.eclipse.cdt.ui.builder.ICToolTabGroupPoint#getId()
-	 */
-	public String getId() {
-		return getField(FIELD_ID);
-	}
-
-	/**
-	 * @see org.eclipse.cdt.ui.builder.ICToolTabGroupPoint#getProviderClassName()
-	 */
-	public String getProviderClassName() {
-		return getField(FIELD_CLASS);
-	}
-
-	/**
-	 * @see org.eclipse.cdt.ui.builder.ICToolTabGroupPoint#getProvider()
-	 */
-	public ICToolTabGroup getProvider() throws CoreException {
-		return (ICToolTabGroup) getClassInstance(FIELD_CLASS);
-	}
-
-}

Back to the top